android - 库存短信应用程序包名称是什么?

标签 android package sony-xperia

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

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

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

最佳答案

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

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

这可能是一个 workaround

关于android - 库存短信应用程序包名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952256/

相关文章:

android - 带安卓 Lollipop 的索尼 Xperia Z 未注册 ACTION_USB_DEVICE_ATTACHED

android - 在 Eclipse 中无法检测到 Sony Xperia

android - 分页库在加载初始数据时不会触发观察

java - 单击按钮时略有延迟

laravel - 如何更改 Larecipe v2.0 Laravel 包中的 Logo ?

protobuf中不同包文件的导入和使用?

linux - 索尼设备的内核配置与源代码不同。为什么?

android - ListView 项目详细信息屏幕 : New or Same Activity?

java - 使用公钥验证 Android 应用程序签名?

npm - "lerna changed"列出所有包