【问题标题】: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
                    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2015-09-03
      相关资源
      最近更新 更多