2

我正在开发一个应用程序,它需要知道所有 android 设备附带的 SMS 应用程序的包名称。人们说它是,com.android.mms但这并不总是正确的。

在 Sony Xperia 设备中,包名称不是com.android.mms因为我的应用程序无法在这些设备中打开 SMS 应用程序。我的应用程序在三星、华为和 LG 设备上运行良好,但在索尼 Xperia 中似乎 SMS 应用程序的包名称已更改。

这样做的原因是我必须注册一个BroadcastReceiver才能在 SMS 数据库更改时通知我的应用程序。我尝试使用 ContentObserver,但在 LG 设备中它不起作用。我也在 Stackoverflow 中提出了这个问题,但还没有人知道答案,所以我想尝试这种BroadcastReceiver方法。正如我所说,com.android.mmsXperia 的包名称是错误的,所以在我知道之前,我的清单的以下代码不适用于我的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>
4

2 回答 2

1

检查这个 PackageManager 提供了查询和操作已安装包和相关权限等的方法。

但如果你不介意我问,为什么直接链接到包?

这可能是一种解决方法

于 2014-02-22T09:44:44.427 回答
0

基于在运行 Lollipop (5.1.1) 的 Xperia Z3C 上的测试,我认为股票 SMS 应用程序是com.sonyericsson.conversations

于 2015-09-15T18:58:33.333 回答