【发布时间】:2015-09-16 02:58:33
【问题描述】:
我正在开发一个应用程序,它需要知道所有 android 设备附带的 SMS 应用程序的包名称。人们说它是com.android.mms,但这并不总是正确的。
在 Sony Xperia 设备中,包名称不是 com.android.mms,因为我的应用程序无法在这些设备中打开 SMS 应用程序。我的应用程序在三星、华为和 LG 设备上运行良好,但在索尼 Xperia 中似乎 SMS 应用程序的包名称已更改。
原因是我必须注册一个BroadcastReceiver 才能在 SMS 数据库更改时通知我的应用程序。我尝试使用 ContentObserver,但在 LG 设备中它不起作用。我也在 Stackoverflow 中提出了这个问题,但还没有人知道答案,所以我想尝试使用这种BroadcastReceiver 方法。正如我所说,Xperia 的包名称 com.android.mms 是错误的,所以在我知道之前,我的清单的以下代码不适用于我的 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>
【问题讨论】:
-
“我正在开发一个应用程序,它需要知道所有 android 设备附带的 SMS 应用程序的包名称”——并非所有 Android 设备都有一个 SMS 应用程序。许多人没有(例如,平板电脑)。有些可能不止一个。
标签: android package sony-xperia