Android studio 使用默认SIM卡发送短信的代码非常简单
SmsManager.getDefault().sendTextMessage("电话号码", null, "短信内容", null, null);
如果想要使用第二张卡(SIM2)发送,可以使用如下代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager localSubscriptionManager = SubscriptionManager.from(mContext);
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(mContext, "无法阅读手机状态,权限未打开", Toast.LENGTH_SHORT).show();
}
if (localSubscriptionManager.getActiveSubscriptionInfoCount() > 1) {
List localList = localSubscriptionManager.getActiveSubscriptionInfoList();
SubscriptionInfo simInfo1 = (SubscriptionInfo) localList.get(0);
SubscriptionInfo simInfo2 = (SubscriptionInfo) localList.get(1);
SubscriptionInfo simInfoAnother = simInfo1;
// 与默认subscription_id不一样的卡就是SIM2
if (SmsManager.getDefault().getSubscriptionId() == simInfoAnother.getSubscriptionId()) {
simInfoAnother = simInfo2;
}
// 使用第二张SIM卡发送成功!
SmsManager.getSmsManagerForSubscriptionId(simInfoAnother.getSubscriptionId()).sendTextMessage("电话号码", null, "短信内容", null, null);
return;
}
Toast.makeText(mContext, "仅检测到一张卡", Toast.LENGTH_SHORT).show();
}
Toast.makeText(mContext, "SDK版本过低", Toast.LENGTH_SHORT).show();
参考链接
如有问题请指出