如何禁用Android上的移动数据

如何禁用Android上的移动数据

在别人告诉我要买一个应用程序之前,快回过头来。=)

我刚得到了一个EVO,它很快就会咬断电池。我下载了JuiceDefender来管理我的移动数据连接。这似乎进展得相当顺利。然而,设置是非常有限的(即使在付费版本)。

到目前为止,我正试图开发一个更可定制的电池节约应用程序。我首先要做的主要事情是能够随心所欲地启用/禁用移动数据连接。

问题是我找不到任何关于如何做到这一点的代码片段或文章。我发现的唯一件事是我不知道这有多准确,但这是我浏览developer.android.com所能做的全部工作。

ConnectivityManager cm = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);
cm.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "android.net.conn.CONNECTIVITY_CHANGE");
State state = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();textView.setText(state.name());

如果有人能告诉我什么能帮上忙的话,我会非常感激的。

更新

看来HTC Evo on Sprint不使用APN设置。我通过下载APNDroid并看着它失效来测试它。然后,我制作了一个快速应用程序,将所有APN条目转储到屏幕上。这就产生了一个结果,那就是MMS。

查看JuiceDefender运行时的电话信息,我发现GSRP网络正在被打开和关闭。这让我相信通过代码是有可能做到的,尽管我发现的每一页询问同样的问题都说它无法完成。关键是他们都说要像APNDroid那样做。有人能给我一些洞察力吗。

谢谢!


红糖糍粑
浏览 938回答 3
3回答

慕码人2483693

数据连接禁用和启用API隐藏在SDK中,不向用户公开,这可以通过使用Java反射技术访问ITeleony接口来实现。给你:    Method dataConnSwitchmethod;     Class telephonyManagerClass;     Object ITelephonyStub;     Class ITelephonyClass;     TelephonyManager telephonyManager = (TelephonyManager) context            .getSystemService(Context.TELEPHONY_SERVICE);     if(telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED){         isEnabled = true;     }else{         isEnabled = false;       }        telephonyManagerClass = Class.forName(telephonyManager.getClass().getName());     Method getITelephonyMethod = telephonyManagerClass.getDeclaredMethod("getITelephony");     getITelephonyMethod.setAccessible(true);     ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);     ITelephonyClass = Class.forName(ITelephonyStub.getClass().getName());     if (isEnabled) {         dataConnSwitchmethod = ITelephonyClass                 .getDeclaredMethod("disableDataConnectivity");     } else {         dataConnSwitchmethod = ITelephonyClass                 .getDeclaredMethod("enableDataConnectivity");        }     dataConnSwitchmethod.setAccessible(true);     dataConnSwitchmethod.invoke(ITelephonyStub);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android