我正在开发一个应用程序,它需要知道所有 android 设备附带的 SMS 应用程序的包名称。人们说它是,com.android.mms
但这并不总是正确的。
在 Sony Xperia 设备中,包名称不是com.android.mms
因为我的应用程序无法在这些设备中打开 SMS 应用程序。我的应用程序在三星、华为和 LG 设备上运行良好,但在索尼 Xperia 中似乎 SMS 应用程序的包名称已更改。
这样做的原因是我必须注册一个BroadcastReceiver
才能在 SMS 数据库更改时通知我的应用程序。我尝试使用 ContentObserver,但在 LG 设备中它不起作用。我也在 Stackoverflow 中提出了这个问题,但还没有人知道答案,所以我想尝试这种BroadcastReceiver
方法。正如我所说,com.android.mms
Xperia 的包名称是错误的,所以在我知道之前,我的清单的以下代码不适用于我的BroadcastReceiver
:
<receiver
android:name="windowsmobilewidget.backend.observers.MessagesChangesReceiver"
>
<intent-filter>
<action android:name="android.intent.action.PROVIDER_CHANGED"/>
<data android:scheme="content"/>
<data android:host="com.android.mms"/>
</intent-filter>
</receiver>