PhoneStateListener onMessageWaitingIndicatorChanged()未被可靠调用

PVS*_*PVS 42 android voicemail

我有一些代码可以检测到何时有新的语音邮件.它基于一个PhoneStateListener.onMessageWaitingIndicatorChanged()实现(因此从技术上讲,只有当MWI指标发生变化时才会触发,而不是每个新的语音邮件都会触发).

它已经工作了好几个月,直到4.xx更新设备.

现在,这在设备重启时有效,否则非常不可靠.我可以看到语音邮件图标出现在通知栏中,但调试日志onMWIChanged保持静音.

我知道4.xx有一个语音邮件提供程序API.心想这可能有一个连接,我加入了android.intent.action.NEW_VOICEMAIL,并android.intent.action.PROVIDER_CHANGED意图对我的接收器,但他们不解雇(我BroadcastReceiver onReceive)是(我的应用程序的的minSdkVersion为8).

rhi*_*te1 1

这是 Android 开发者关于 Android 4.0 API 的帖子。

http://developer.android.com/about/versions/android-4.0.html

如果您向下滚动,则会看到有关语音邮件提供商的部分,其中解释了:

由于 API 目前不允许第三方应用程序读取系统中的所有语音邮件,因此唯一应使用语音邮件 API 的第三方应用程序是那些需要向用户发送语音邮件的应用程序。

但是,我认为如果您尝试从第三方而不是从您的服务接收语音邮件,那么这仍然是可能的。查看有关 VoicemailContracts 的链接,我相信它说您需要清单中的ADD_VOICEMAIL权限才能使用您在上面使用的操作。

http://developer.android.com/reference/android/provider/VoicemailContract.html

还有一些示例我没有机会查看你们的 SDK 中名为“语音邮件提供商演示”的示例。我希望这有帮助。