SMS менеджер не работает на указанных c устройствах - PullRequest
0 голосов
/ 04 марта 2020

Я разрабатываю приложение, в котором я могу отправить определенные c сообщения на указанный c номер. сообщения уже предварительно определены, например, «SYSSTAT», и номер также предопределен, когда пользователь запускает приложение, когда он / она вводит номер приемного устройства.

Но я получаю ошибку, так как SMSManager возвращает RESULT_ERROR_GENERIC_FAILURE, i Я тестировал на различных ОС, таких как запуск от Marshmallow до P ie, но я получаю ошибку только на устройствах Marshmallow.

Я уже давал каждое разрешение вручную, но, к сожалению, не работал только на устройствах с маршмеллоу проверено на Redmi 4A, Note 7 pro, Note 7, Nokia 6.1, et c ...

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 01 апреля 2020

Это из-за 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)
    }
}

И отправка SMS с использованием выбранного идентификатора подписки

SmsManager.getSmsManagerForSubscriptionId(aSubscriptionId)
                .sendTextMessage(
                    phoneNumber,
                    null,
                    aMsg,
                    sentPI,
                    deliveredPI
                )
...