【问题标题】:SMS manager not working on specific devices短信管理器不适用于特定设备
【发布时间】:2020-03-04 12:14:42
【问题描述】:
我正在开发一个应用程序,我可以在其中向特定号码发送特定消息。
消息已经预先定义,例如“SYSSTAT”,并且号码也是在用户启动应用程序时预先定义的,他/她输入接收器设备号。
但是当 SMSManager 返回 RESULT_ERROR_GENERIC_FAILURE 时出现错误,我已经在各种操作系统上进行了测试,例如从 Marshmallow 到 Pie,但我只在 Marshmallow 设备上遇到错误。
我也已经手动授予了每个权限,但不幸的是,仅在我检查过 Redmi 4A、Note 7 pro、Note 7、诺基亚 6.1 等的棉花糖设备上无法使用...
请帮助我。
【问题讨论】:
标签:
android
kotlin
android-6.0-marshmallow
smsmanager
【解决方案1】:
这是由于 simInfo.subscriptionId
这是我管理它的示例代码。
val activeList = subscriptionManager.activeSubscriptionInfoList
if (activeList != null && activeList.isNotEmpty()) {
isMultipleSubscriptions = activeList.size > 1
val simInfo1 = activeList[0] as SubscriptionInfo
val simInfo2 = activeList[1] as SubscriptionInfo
if (simInfo1.displayName != null && simInfo1.displayName != "") {
companies.add(simInfo1.displayName.toString())
companySubscriptionId.add(simInfo1.subscriptionId)
}
if (simInfo2.displayName != null && simInfo2.displayName != "") {
companies.add(simInfo2.displayName.toString())
companySubscriptionId.add(simInfo2.subscriptionId)
}
}
并使用选定的订阅 ID 发送短信
SmsManager.getSmsManagerForSubscriptionId(aSubscriptionId)
.sendTextMessage(
phoneNumber,
null,
aMsg,
sentPI,
deliveredPI
)