在API级别17中使用android adb shell,我可以使用svc data enable / disable启用和禁用移动数据,但是如果我尝试进行实际操作,它可以正常工作并传递任何异常,这是我的代码
try{ Log.e(TAG,"Before mobile data thread");
Process proc = Runtime.getRuntime().exec("su");
DataOutputStream os= new DataOutputStream(proc.getOutputStream());
os.writeBytes("svc data disable\n");
os.writeBytes("exit\n");
os.flush();
try{
proc.waitFor();
if(proc.exitValue() !=255)
{
Log.e(TAG,"Disabling mobile data");
}else{
Log.e(TAG,"Error Disabling mobile data");
}
}catch(Exception e){}
} catch (Exception ex){Log.e(TAG,"IN mobile data exception exception");}
任何建议我如何禁用/启用移动数据
最佳答案
如果电话没有植根或您的应用程序不在设备管理员模式下,则您无法自己启用或禁用移动数据。您只能要求用户启用/禁用应用程序数据。
您可以在对话框中询问用户,如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Please turn on mobile data access")
.setTitle("Unable to connect")
.setCancelable(false)
.setPositiveButton("Settings", (dialog, id) -> startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)))
.setNegativeButton("Cancel", null)
.show()
对于有根电话,请使用this answer