Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在双SIM卡设备中,通过特定SIM卡以编程方式发送彩信_Android_Mms_Dual Sim - Fatal编程技术网

Android:在双SIM卡设备中,通过特定SIM卡以编程方式发送彩信

Android:在双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

我的代码成功发送彩信。该方法使用ConnectionManager

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方法或技术将这些(或等效的替代方案)作为输入?