4

我正在尝试开发一个向目标发送短信的 android 应用程序。如果有两张 SIM(SIM1、SIM2)卡,我如何检测它们并选择特定的 SIM 卡发送短信谢谢,

4

2 回答 2

1

请尝试此代码。使用 Android sdk 5.1 及更高版本。

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";

PendingIntent localPendingIntent1 = PendingIntent.getBroadcast(mContext, 0, new Intent(this.SENT), 0);
PendingIntent localPendingIntent2 = PendingIntent.getBroadcast(mContext, 0, new Intent(this.DELIVERED), 0);

SubscriptionManager localSubscriptionManager = SubscriptionManager.from(mContext);
if (localSubscriptionManager.getActiveSubscriptionInfoCount() > 1)
{
List localList = localSubscriptionManager.getActiveSubscriptionInfoList();
final String[] arrayOfString = new String[localList.size()];
int i = 0;
Iterator localIterator = localList.iterator();
while (localIterator.hasNext())
{
SubscriptionInfo localSubscriptionInfo = (SubscriptionInfo)localIterator.next();
localSubscriptionInfo.getSubscriptionId();
//log.d("22 api level ", "got dual sim: ");
int j = i + 1;
arrayOfString[i] = (localSubscriptionInfo.getCarrierName().toString() + " " + localSubscriptionInfo.getNumber());
i = j;
}

SmsManager.getDefault().sendTextMessage(paramString1, null, paramString2, localPendingIntent1, localPendingIntent2);
于 2016-06-29T09:08:02.977 回答
-1

在 MTK 平台中,您可以使用:

SmsManagerEx.getDefault().sendTextMessage(serverAddress, null,
                    textMessage, pendingIntent, null, mSIM);
于 2015-06-15T11:16:46.217 回答