我有根android设备。我想通过我的应用程序下载并安装另一个应用程序。我的设备上安装了SUPERUSER应用程序。
下载完成后,我使用以下代码进行应用程序安装。
Process p = Runtime.getRuntime().exec("su");
InputStream es = p.getErrorStream();
DataOutputStream os = new DataOutputStream(
p.getOutputStream());
final String libs = "LD_LIBRARY_PATH=/vendor/lib:/system/lib ";
final String[] commands = {libs + "pm install -r " + result,"reboot"
};
for (String command : commands) {
Log.d(LOG_TAG, " command : " + command);
os.writeBytes(command + "n");
}
os.writeBytes("exitn");
Log.d(LOG_TAG, " DataOutputStream.writebytes ");
os.flush();
以上女生在Android 4.0中工作。但是当我在安卓4.2.2上运行相同的代码。我遇到安全异常。
. lang。SecurityException: Permission Denial:广播请求以用户-1的身份运行,但正在从用户0调用;这需要android.permission。INTERACT_ACROSS_USERS_FULL或android.permission.INTERACT_ACROSS_USERS
如何处理这个异常?
在期待中感谢,
问候,
AK
添加
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
在AndroidManifest.xml
的根<manifest>
元素下