Android 如何以编程方式启用移动数据开/关
在android中,如何在android 4.4及以上版本中打开和关闭移动数据。 我使用过此代码,但在android 4.4及以上版本中不起作用:Android 如何以编程方式启用移动数据开/关,android,performance,android-fragments,android-intent,android-activity,Android,Performance,Android Fragments,Android Intent,Android Activity,在android中,如何在android 4.4及以上版本中打开和关闭移动数据。 我使用过此代码,但在android 4.4及以上版本中不起作用: private void setMobileDataEnabled(Context context, boolean enabled){ final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_
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);
}
您无法访问android 4.4上的移动数据开/关程序。出于安全原因,该程序已被停止。相反,您可以使用对话框要求用户启用移动数据,然后如果用户启用,您可以执行任务 您无法通过编程启用internet连接,但可以检查internet连接是否存在,如果不存在,则可以告诉用户启用internet连接 下面的代码就是这样做的
protected void createNetErrorDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("You need internet connection for this app. Please turn on mobile network or Wi-Fi in Settings.")
.setTitle("Unable to connect")
.setCancelable(false)
.setPositiveButton("Settings",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
startActivity(i);
}
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
}
);
AlertDialog alert = builder.create();
alert.show();
}
请查看此链接:嗨,阿伦,你可以接受我的回答嗨,如果你想禁用你可以像这样使用的手机数据,TelephonyManager tm=(TelephonyManager)Android.App.Application.Context.GetSystemService(Context.TelephonyService);var tdata=tm.DataEnabled;如果(tdata)tdata=false;这不适用于Lolipop设备正如我在上面所写的,Lolipop是5.0。请仔细阅读问题的正确答案。这很好,但有没有办法不将用户发送到设置,并通过单击“确定”打开网络?不离开应用程序。@杰克:是的,这是可能的,用谷歌搜索出来:-)