在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

10-01 23:59
查看更多