pm grant <PACKAGE_NAME> <PERMISSION_NAME> 不工作
pm grant <PACKAGE_NAME> <PERMISSION_NAME> not working
我有一个奇怪的问题。上周我让我的代码运行得非常棒。我在有根平板电脑上工作,我正在通过代码设置调试模式,但不知道为什么,我 运行 今天早上我的应用程序和我用来执行此操作的命令不再起作用,我得到 "Permission Denial etc.." 但是,当我从设备的终端键入命令时,它有效...有帮助吗?
private void grantPermission(){
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
Log.e("PACKAGE", getPackageName());
os.writeBytes("adb shell" + "\n");
os.flush();
os.writeBytes("pm grant "+getPackageName()+" android.permission.CHANGE_CONFIGURATION" + "\n");
os.flush();
os.writeBytes("pm grant "+getPackageName()+" android.permission.WRITE_SECURE_SETTINGS" + "\n");
os.flush();
} catch (Exception e){
e.printStackTrace();
Log.e("SETTINGS", "FAIL");
}
}
在这里!我终于修好了!在调用之前,权限设置不够快,我只是添加了一个对进程的 waitFor() 方法的调用,它再次工作。但我仍然想知道为什么它以前可以工作!
private void grantPermission(){
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes("pm grant "+this.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS" + "\n");
os.writeBytes("pm grant "+this.getPackageName()+" android.permission.CHANGE_CONFIGURATION" + "\n");
os.writeBytes("exit\n");
os.flush();
suProcess.waitFor();
} catch (Exception e){
e.printStackTrace();
}
}
我有一个奇怪的问题。上周我让我的代码运行得非常棒。我在有根平板电脑上工作,我正在通过代码设置调试模式,但不知道为什么,我 运行 今天早上我的应用程序和我用来执行此操作的命令不再起作用,我得到 "Permission Denial etc.." 但是,当我从设备的终端键入命令时,它有效...有帮助吗?
private void grantPermission(){
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
Log.e("PACKAGE", getPackageName());
os.writeBytes("adb shell" + "\n");
os.flush();
os.writeBytes("pm grant "+getPackageName()+" android.permission.CHANGE_CONFIGURATION" + "\n");
os.flush();
os.writeBytes("pm grant "+getPackageName()+" android.permission.WRITE_SECURE_SETTINGS" + "\n");
os.flush();
} catch (Exception e){
e.printStackTrace();
Log.e("SETTINGS", "FAIL");
}
}
在这里!我终于修好了!在调用之前,权限设置不够快,我只是添加了一个对进程的 waitFor() 方法的调用,它再次工作。但我仍然想知道为什么它以前可以工作!
private void grantPermission(){
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes("pm grant "+this.getPackageName()+" android.permission.WRITE_SECURE_SETTINGS" + "\n");
os.writeBytes("pm grant "+this.getPackageName()+" android.permission.CHANGE_CONFIGURATION" + "\n");
os.writeBytes("exit\n");
os.flush();
suProcess.waitFor();
} catch (Exception e){
e.printStackTrace();
}
}