Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
adb shell设置在Android Oreo 8.0上放置安全的sysui_nav_bar命令如果没有root,则无法工作_Android_Shell_Adb - Fatal编程技术网

adb shell设置在Android Oreo 8.0上放置安全的sysui_nav_bar命令如果没有root,则无法工作

adb shell设置在Android Oreo 8.0上放置安全的sysui_nav_bar命令如果没有root,则无法工作,android,shell,adb,Android,Shell,Adb,我试图在Android Oreo上使用这套“命令集”,但我有一些问题。为了进行测试,我在Nexus 5x上使用了以下命令: adb shell settings put secure sysui_nav_bar "space,recent;home;back,space" 所以我决定在我的应用程序中实现这个命令,并在没有root帮助的情况下尝试。在应用程序清单中,我添加了写入安全设置的权限: <uses-permission android:name="android.permissio

我试图在Android Oreo上使用这套“命令集”,但我有一些问题。为了进行测试,我在Nexus 5x上使用了以下命令:

adb shell settings put secure sysui_nav_bar "space,recent;home;back,space"
所以我决定在我的应用程序中实现这个命令,并在没有root帮助的情况下尝试。在应用程序清单中,我添加了写入安全设置的权限:

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
我的应用程序构建完成后,我在5x上运行它,并通过adb键入此命令以允许写入安全设置:
adb shell pm grant com.customizer.smart.batterysavercustomizer android.permission.write_secure_settings
,此命令执行时没有错误。但当我试着点击我的“测试按钮”时,什么也没发生,androidmonitor中出现了0个错误

我做的最后一次尝试是使用root帮助。我编辑了预览命令按钮:

    testButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        try {
        Process process = Runtime.getRuntime().exec("su -c settings put secure sysui_nav_bar \"space,recent;home;back,space\""); 
        } catch (Exception e) {Toast.makeText(getApplicationContext(), "" + e, Toast.LENGTH_LONG).show();}
    }
});
当我点击我的testButton时,应用程序请求garant root权限,它就工作了。但是,在同一部手机上,使用相同adb命令的“自定义导航栏”应用程序在没有root的情况下如何工作呢?。
我接着说:

您应该使用设置类而不是Runtime.getRuntime().exec()

    testButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        try {
        Process process = Runtime.getRuntime().exec("su -c settings put secure sysui_nav_bar \"space,recent;home;back,space\""); 
        } catch (Exception e) {Toast.makeText(getApplicationContext(), "" + e, Toast.LENGTH_LONG).show();}
    }
});
testButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_SECURE_SETTINGS) == PackageManager.PERMISSION_GRANTED) {
            Settings.Secure.putString(context.getContentResolver(), "sysui_nav_bar", valueToSave);
        } else {
            //Write secure Settings permission not granted
            //Show instructions about how to grant it via ADB
        }
    }
});