-1

私はルート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("exit\n");
    Log.d(LOG_TAG, " DataOutputStream.writebytes ");
    os.flush();

上記の coed は Android 4.0 で動作しています。しかし、Andorid 4.2.2 で同じコードを実行すると。セキュリティ例外に遭遇しました。

java.lang.SecurityException: Permission Denial: ブロードキャストはユーザー -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 に答える