如何获取适配全品牌安卓设备的短信应用包名
安卓全品牌默认短信应用包名问题说明
核心结论
不存在可以适配所有安卓品牌设备的固定默认短信应用包名。
安卓原生AOSP的默认短信应用包名为com.google.android.apps.messaging,仅在类原生系统(如Pixel、部分海外版安卓机型)中生效。包括三星在内的所有定制系统厂商都会自研预装短信应用,各自定义包名,常见的厂商短信应用包名如下:
- 三星:
com.samsung.android.messaging - 小米:
com.android.mms - 华为:
com.android.mms/com.huawei.android.mms - OPPO:
com.android.mms/com.oppo.mms - vivo:
com.android.mms/com.vivo.smspush
通用适配方案
不要硬编码任意短信应用包名,直接调用安卓系统公开API即可获取当前设备设置的默认短信应用包名,支持所有API 19及以上的安卓设备,无需单独适配各品牌:
// Java 实现代码 String defaultSmsPkg = Telephony.Sms.getDefaultSmsPackage(context);
// Kotlin 实现代码 val defaultSmsPkg = Telephony.Sms.getDefaultSmsPackage(context)
内容的提问来源于stack exchange,提问作者Syed Fidaullah Shah
相关产品推荐
相关产品推荐

