问题描述
光环伟大的人?
我使用下面的代码来获取、解除和敬酒 USSD 响应消息,但是,我想与包含菜单或选项的 ussd 响应交互,
例如,在 USSD 的编辑文本中回复一个,然后点击发送按钮。
我该怎么办。如果您有一些参考代码、示例,或者您可以为我指明正确的方向,我将不胜感激。
提前感谢任何帮助。
谢谢,注意安全。
类 USSDService : AccessibilityService() {
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onAccessibilityEvent(event: AccessibilityEvent?) {
val ussdResponse = event!!.text.toString().replace("[","").replace("]","")
if( TextUtils.isEmpty(ussdResponse) ) return;
if (event.className == "android.app.AlertDialog") {
performGlobalAction(GLOBAL_ACTION_BACK)
val intent = Intent("com.times.ussd.action.REFRESH")
intent.putExtra("message",ussdResponse)
val nodeInfo = event.source
val list: List<AccessibilityNodeInfo> = nodeInfo.findAccessibilityNodeInfosByText("Send")
for (node in list) {
if (ussdResponse.contains("Select User")){
/** I would like to perform the setting of text and replying back here... */
}
}
Toast.makeText(this,ussdResponse,Toast.LENGTH_LONG).show()
//
}
}
override fun onInterrupt() {
Todo("Not yet implemented")
}
override fun onServiceConnected() {
super.onServiceConnected()
val info = AccessibilityServiceInfo()
info.flags = AccessibilityServiceInfo.DEFAULT
info.packageNames = arrayOf("com.android.phone")
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED
info.FeedbackType = AccessibilityServiceInfo.FeedBACK_GENERIC
serviceInfo = info
}
}
/** 我找到了以下代码; */
val inputNode = source.findFocus(AccessibilityNodeInfo.FOCUS_INPUT)
val arguments = Bundle()
arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,"2")
inputNode.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT,arguments)
for (node in list) {
node.performAction(AccessibilityNodeInfo.ACTION_CLICK)
}
任何人都知道我做错了什么!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)