Madhav
Madhav

Reputation: 351

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.

Upvotes: 1

Views: 245

Answers (1)

Madhav
Madhav

Reputation: 351

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
                )

Upvotes: 1

Related Questions