1

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

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

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

4

1 回答 1

1

这里要提一些事情:

  • 在 Android 5.1 之前,没有用于双卡功能的官方 API。因此,似乎没有针对旧设备的通用解决方案。从 5.1 开始提供 API。
  • 正如这个问题所指出的,您的代码将不再适用于 Android 5+
  • 但是,此答案为上述两个项目提供了解决方案:该方法setMobileNetworkfromLollipop检查目标是 5 还是 5.1+,如果是 5.1+,它会循环遍历所有订阅 id(=sim 卡)以切换数据服务。您也可以将它与您的代码结合起来以针对以前的版本。缺点:它需要 root 访问权限,并且双卡功能仅限于 5.1+。
于 2015-07-30T07:59:34.370 回答