Android:在双SIM卡设备中,通过特定SIM卡以编程方式发送彩信
我的代码成功发送彩信。该方法使用ConnectionManagerAndroid:在双SIM卡设备中,通过特定SIM卡以编程方式发送彩信,android,mms,dual-sim,Android,Mms,Dual Sim,我的代码成功发送彩信。该方法使用ConnectionManager if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { NetworkRequest.Builder builder = new NetworkRequest.Builder(); builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); builder.ad
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_MMS);
NetworkRequest networkRequest = builder.build();
cm.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback()
{
@Override
public void onAvailable(Network network)
{
super.onAvailable(network);
// do MMS sending here using HTTP/network APIs
cm.unregisterNetworkCallback(this);
}
});
}
在双卡手机中,这种方法似乎选择了一个默认的SIM卡,然后用该号码发送彩信(我不知道默认的SIM卡是如何选择的)
如何指定SIM卡插槽或订阅ID作为网络请求的一部分?还是有别的办法?
只是重申一下,这个问题只是关于彩信,而不是短信。此外,问题不在于以编程方式发送彩信(这将在SO的其他部分讨论)。这个问题是针对双SIM卡设备的
谢谢您可以通过以下方法获取sim卡信息
//above Android API 22
if (Build.VERSION.SDK_INT > 22) {
//for dual sim mobile
SubscriptionManager localSubscriptionManager = SubscriptionManager.from(this);
if (localSubscriptionManager.getActiveSubscriptionInfoCount() > 1) {
//if there are two sims in dual sim mobile
List localList = localSubscriptionManager.getActiveSubscriptionInfoList();
SubscriptionInfo simInfo = (SubscriptionInfo) localList.get(0);
SubscriptionInfo simInfo1 = (SubscriptionInfo) localList.get(1);
final String sim1 = simInfo.getDisplayName().toString();
final String sim2 = simInfo1.getDisplayName().toString();
}else{
//if there is 1 sim in dual sim mobile
TelephonyManager tManager = (TelephonyManager) getBaseContext()
.getSystemService(Context.TELEPHONY_SERVICE);
String sim1 = tManager.getNetworkOperatorName();
}
}else{
//below android API 22
TelephonyManager tManager = (TelephonyManager) getBaseContext()
.getSystemService(Context.TELEPHONY_SERVICE);
String sim1 = tManager.getNetworkOperatorName();
}
问题是:如何通过特定sim卡发送彩信您可以使用此方法选择特定的sim卡。然后使用彩信发送彩信。确定。假设SIM插槽索引或SubscriptionInfo已知。接下来呢?哪种MMS方法或技术将这些(或等效的替代方案)作为输入?