在双卡中禁用数据连接 android

disable data connection in dual sim android

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

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();
    }

这不适用于双卡。所以有人可以帮助我。 如何禁用双卡 android phone 中的数据连接? 以及如何检查 phone 是否是双 SIM 卡

这里要提一些事情:

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