禁用双sim卡中的数据连接

时间:2015-07-25 14:19:10

标签: android dual-sim data-connections

我想禁用数据连接,我正在使用此代码。

ConnectivityManager dataManager;
    dataManager  = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

    try {
        dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
    } catch (NoSuchMethodException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    dataMtd.setAccessible(true);
    try {
        dataMtd.invoke(dataManager, false);
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

这在双卡中不起作用。所以有人可以帮助我。 如何在双卡安卓手机中禁用数据连接? 以及如何检查手机是否为双卡?

1 个答案:

答案 0 :(得分:1)

这里要提一下:

  • 在Android 5.1之前,没有用于双SIM卡功能的官方API。因此,旧设备似乎没有通用的解决方案。从5.1开始就有API。
  • 您的代码将不再适用于Android 5+,正如in this question
  • 所指出的那样
  • 但是,this answer为上述两个项目符号提供了解决方案:方法setMobileNetworkfromLollipop检查目标是5还是5.1+,如果是5.1+,则循环遍历所有订阅ID' s (= sim卡)切换数据服务。您可以将它与代码结合使用以定位以前的版本。缺点:它需要root访问权限,而双SIM卡功能仅限于5.1+。