我可以从应用程序调用授予权限 ADB 命令吗
Can i call grant permission ADB command from app
我在应用程序中授予 WRITE_EXTERNAL_STORAGE
运行时权限时遇到问题。接受许可应用程序正在重新启动,我发现这是因为我们的自定义固件。
我想知道的是,我们可以调用 ADB 命令来授予应用程序的权限吗?我试过这样打电话
final String STORAGE_PERMISSION_COMMAND = "sh -c adb -d shell pm grant com.example.easypermission.easypermissionsample android.permission.WRITE_EXTERNAL_STORAGE";
try {
Runtime.getRuntime().exec(STORAGE_PERMISSION_COMMAND,null,null);
} catch (IOException e) {
e.printStackTrace();
}
但是什么也没有发生。谁能告诉我这是否可以做到,如果可以,怎么做?
正如 link @Onik 分享的那样,我们不能 运行 应用内的 ADB 命令。当你 运行 一个应用程序时,它的代码在环境中执行。因此,当您调用 Runtime.getRuntime().exec("adb shell command")
时,您实际做的是尝试启动另一个在 tcp 端口 5038 上启动的 adb 服务器进程(现在在目标设备上),因为端口 5037 正忙。
我在应用程序中授予 WRITE_EXTERNAL_STORAGE
运行时权限时遇到问题。接受许可应用程序正在重新启动,我发现这是因为我们的自定义固件。
我想知道的是,我们可以调用 ADB 命令来授予应用程序的权限吗?我试过这样打电话
final String STORAGE_PERMISSION_COMMAND = "sh -c adb -d shell pm grant com.example.easypermission.easypermissionsample android.permission.WRITE_EXTERNAL_STORAGE";
try {
Runtime.getRuntime().exec(STORAGE_PERMISSION_COMMAND,null,null);
} catch (IOException e) {
e.printStackTrace();
}
但是什么也没有发生。谁能告诉我这是否可以做到,如果可以,怎么做?
正如 link @Onik 分享的那样,我们不能 运行 应用内的 ADB 命令。当你 运行 一个应用程序时,它的代码在环境中执行。因此,当您调用 Runtime.getRuntime().exec("adb shell command")
时,您实际做的是尝试启动另一个在 tcp 端口 5038 上启动的 adb 服务器进程(现在在目标设备上),因为端口 5037 正忙。