短信管理器 getSmsManagerForSubscriptionId

Sms manager getSmsManagerForSubscriptionId

我将我的应用程序设置为在发送从服务器收到的短信请求时始终使用 1 的订阅 ID,该应用程序在后台运行良好,但只要它在前台 运行,它就会弹出对话框屏幕 select 用于发送短信的 SIM 卡。 请问这是怎么回事?

private void sendSms(String to, String msg, String oId) {
    SmsManager sms = SmsManager.getSmsManagerForSubscriptionId(1);

    sms.sendTextMessage(to, null, msg,
            null, null);
    smsCallback(oId);
    Log.d(TAG, "smsCallback ID: "+oId);
}

我现在明白了,订阅ID是错误的。 找到正确的订阅 ID,问题已解决。