0

マニフェストに権限を設定しました:

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

次の行を呼び出して、デバイスを再起動します。

Intent intent = new Intent(Intent.ACTION_REBOOT);
sendBroadcast(intent);

エミュレーターでルート権限を持っているので、次のエラーが発生する理由が気になります:

 Permission Denial: not allowed to send broadcast android.intent.action.REBOOT from pid=963, uid=10046
4

2 に答える 2

2

REBOOT権限は、プラットフォーム署名を持つアプリケーションまたはシステムアプリケーションであるアプリケーションにのみ付与されます。

rootであると、おそらくrootとしてコマンドを実行できますが、アプリはまだそうではありません。(ただし、shutdownコマンドをsudoで呼び出すことはできます)

于 2012-09-17T14:51:49.113 に答える
0

誰かがまだ探していて、実際にルート化されたデバイスについて話している場合は、この回答を読んでください。

次のコード サンプルで実行する必要があります (リクエストごとに追加)。

Process rebootProcess = null;
try
{
    rebootProcess = Runtime.getRuntime().exec("su -c reboot now");
}
catch (IOException e)
{
    // Handle I/O exception.
}

// We waitFor only if we've got the process.
if (rebootProcess != null)
{
    try
    {
        rebootProcess.waitFor();
    }
    catch (InterruptedException e)
    {
        // Now handle this exception.
    }
}
于 2014-09-18T17:23:14.183 に答える