我已经在这里和其他论坛上阅读了几天关于USSD对话框的帖子。 (通过USSD,我指的是运营商通知中包含呼叫成本详细信息的内容)。
我看到了许多解决方案,它们显然适用于Android中较低的API级别,但经过了很多测试,发现它们不再起作用,或者至少我无法使它们正常工作。
首先,我想知道是否有任何方法可以检测到用户是否显示了USSD对话框。因此,我尝试了这个: Prevent USSD dialog and read USSD response?
但是,从日志中我得到的所有信息都与我的应用程序相关,虽然我可以在Eclipse的LogCat中看到它们,但没有捕获到与MMI相关的日志! 也许它只适用于比我的Android版本更低的版本(4.2.2)。
然后,我决定使用"IExtendedNetworkService",就像以下链接和许多其他链接中使用的方式一样:
https://github.com/alaasalman/ussdinterceptor
Using IExtendedNetworkService to get USSD response in Android
How to read USSD messages in android?
但是,它对于Android 4.2.2及以上版本也是无用的。
然后我发现了这个链接: How to dismiss system dialog in Android?
看起来很有前途,但即使经过了许多测试,我也无法让它正常工作。
我以为可能是我做错了什么,或者它只能用在更低版本的API上。
之后,我尝试了许多其他方法,如模拟Home键和返回键,甚至通过编程方式触摸屏幕以隐藏该通知,但由于它们都在我的活动下运行,所以都没有起作用。
是否有人知道这些方法或其他方法是否适用于管理甚至检测Android 4.2.2及以上版本中的USSD消息?
非常感谢任何帮助,提前致谢。