所以直到这一点,我能想到的是,在 Android 4.2.2 之前,我们有两种方法可用:
使用 logcat 并从中提取信息
Runtime.getRuntime().exec( "logcat -v time -b main PhoneUtils:D");
我使用这段代码读取了logcat
并在此处找到了displayMMIComplete
消息使用提供的名为
com.android.ussd.IExtendedNetworkService
的 Intent 并监听此 Intent 并执行任务。
所以到目前为止我已经确认的是,自 4.0 起,此 Intent 已被删除,并且自 4.2.2 起,logcat
中 USSD 消息信息的打印已被删除?
我说的对吗? 其次,现在读取 USSD 消息的破解或解决方案是什么,我们必须有某种方法可以通过它吗?
最佳答案
Android 框架还没有提供可用于以可移植方式“读取/拦截”USSD 消息的 API。
您提到的这 2 种方法是迄今为止可用的方法,但正如您所提到的,Android 开源项目不再支持它。
有一个request/discussion继续,这清楚地表明许多开发人员正在请求此功能,但到目前为止,谷歌方面没有更新/沟通来解释 future 关于以可移植方式添加对“读取/拦截”USSD 消息的支持的路线图。
关于java - 如何读取/拦截来自 Android 手机的 USSD 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28083067/