【发布时间】:2018-01-14 01:58:10
【问题描述】:
在android 4.4及以上版本中如何开启和关闭移动数据。 我已经使用了这段代码,但它不适用于 android 4.4 及更高版本:
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);
}
【问题讨论】:
-
嗨阿伦,你可以接受我的回答
-
嗨,如果你想禁用蜂窝数据,你可以像这样使用,TelephonyManager tm = (TelephonyManager)Android.App.Application.Context.GetSystemService(Context.TelephonyService); var tdata = tm.DataEnabled;如果 (tdata) tdata = false;
标签: android performance android-fragments android-intent android-activity