如何通过程序打开或关闭3G数据流量
Posted On 2014年10月27日
针对于android2.2 以上系统, 官方没有提供直接的方式和资料供我们使用. 所以我们需要通过反射的方式, 来调用iConnectivityManagerClass的setMobileDataEnabled 方法.
首先,我们需要在manifest.xml中添加对应的权限.
然后我们实现如下方法既可.
private void setMobileDataEnabled(Context context, boolean enabled) { final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(conman); final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); setMobileDataEnabledMethod.setAccessible(true); setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled); }
此篇文章已被阅读2315 次