androidkotlinandroid-6.0-marshmallowsmsmanager

SMS manager not working on specific devices


I'm developing an application in which i can send specific messages to specific number. the messages are already pre-defined for example "SYSSTAT", and number is also pre-define when user start application he/she enter receiver device number.

But i'm getting error as SMSManager returns RESULT_ERROR_GENERIC_FAILURE, i had tested on various OS like start from Marshmallow to Pie but i'm getting error only on Marshmallow devices.

I had already give each permission manually too, but unfortunately not work on marshmallow devices only i had checked on Redmi 4A, Note 7 pro, Note 7, Nokia 6.1, etc...

Kindly help me.


Solution

  • It's due to simInfo.subscriptionId

    here is sample code hwo i manage it.

    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)
        }
    }
    

    And send SMS using selected subscription id

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