-1

我有根安卓设备。我想通过我的应用程序下载并安装另一个应用程序。我的设备上安装了 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("exit\n");
    Log.d(LOG_TAG, " DataOutputStream.writebytes ");
    os.flush();

上述 coed 在 Android 4.0 中运行。但是当我在 Andorid 4.2.2 上运行相同的代码时。我遇到了安全异常。

java.lang.SecurityException:权限被拒绝:广播要求以用户-1身份运行,但从用户0调用;这需要 android.permission.INTERACT_ACROSS_USERS_FULL 或 android.permission.INTERACT_ACROSS_USERS

我该如何处理这个异常?

在期待中感谢,

问候,

AK

4

1 回答 1

0

添加

<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />

在你的根<manifest>元素下AndroidManifest.xml

于 2014-06-01T18:17:22.283 回答