Dalvik VM 上で実行されているアプリケーション (サービス) から電話をプログラムで再起動することはできますか?
SDK がこの機能を提供しない場合、NDK を使用して、カーネルによって提供されるいくつかの関数を呼び出すのはどうですか? このオプションが好ましくないことはわかっていますが (ライブラリが十分に安定していないため)、それが唯一のオプションである場合は、それも考慮する必要があります。
Dalvik VM 上で実行されているアプリケーション (サービス) から電話をプログラムで再起動することはできますか?
SDK がこの機能を提供しない場合、NDK を使用して、カーネルによって提供されるいくつかの関数を呼び出すのはどうですか? このオプションが好ましくないことはわかっていますが (ライブラリが十分に安定していないため)、それが唯一のオプションである場合は、それも考慮する必要があります。
powermanager.rebootは、API レベル 8 以降で使用できます。再起動権限が必要です
うまくいけば、そうではありません。:-)
電話を自由に再起動できるとしたら、悪意のあるアプリがランダムな間隔で静かに再起動し、あなたの人生を不幸にする可能性があります.
Android は、Java 言語のサンドボックスではなく、プロセス境界と Linux のセキュリティ アクセス権に依存しているため、NDK はここで追加の機能を提供しません。
なぜこれをしたいのですか?たぶん、あなたが求めていることを達成するための他の方法があります。
Linux でこのトリックを実行する正しいシステム コールを見つけ、何時間も NDK/JNI パスをいじった後、ようやく関数を呼び出すことができました。その結果、そのためにはスーパーユーザーの許可が必要でした。なんとなくこうなるだろうなとは思っていました。
とにかくこの問題を克服する方法はありますか? 私がまだ避けようとしている電話をルート化する以外に。
adb を使用して電話を再起動することは引き続き可能です。ddmd やその他のデーモンと通信していると思いますが、どうにかして同じ機能を使用することは可能でしょうか?