銀河ネクサス用のユーティリティアプリを作成しています。タブレットをセーフ モードで再起動したい。
覗いてみましたPowerManager
PowerManager p = (PowerManager) getSystemService(POWER_SERVICE);
p.reboot(reason);
これにより、デバイスがセーフ モードで再起動されないようです。プログラムでデバイスを再起動することはできますか? どのように?
銀河ネクサス用のユーティリティアプリを作成しています。タブレットをセーフ モードで再起動したい。
覗いてみましたPowerManager
PowerManager p = (PowerManager) getSystemService(POWER_SERVICE);
p.reboot(reason);
これにより、デバイスがセーフ モードで再起動されないようです。プログラムでデバイスを再起動することはできますか? どのように?
基本的に、セーフモードに入るには2つの既知の方法があります。
Androidは、新しくインストールされたアプリの問題を検出し、セーフモードに入るときにアプリを強制終了します。
電源投入時のキー押下の組み合わせ。
それを行う別の方法があるとは思えません。もしあれば、カスタムROMのほとんどのリカバリと電源メニューにはそれが含まれていました。
渡される文字列reboot()
はカーネルパラメータであり、デバイスのカーネルにそのオプションがある場合にのみ有効になります。ここでいくつかのオプションを試すことができます。
アップデート:
セーフモードはPackageManagerService
、Androidのシステムサーバー(「パッケージ」サービス)内にあるトグルです。
public void enterSafeMode() {
enforceSystemOrRoot("Only the system can request entering safe mode");
if (!mSystemReady) {
mSafeMode = true;
}
}
そしてここにどんなAPPからでもそれを使うことについてのいくつかのポイントがあります:
IPackageManager
にこのサービスの実装スタブ()を取得します。セーフ モードに入る 3 つ目の方法 (GingerBread 2.3.5 以降で利用可能)
デバイスの電源が完全に入っている状態で、電源ボタンを押し、電源オフのメニュー項目を長押しします。セーフモードに入るオプションが表示されます。このため、プログラムでセーフ モードに入る方法が存在する可能性があります。トラブルシューティングに役立つことを願っています。さらに別の情報源を参照したライフハッカーの記事の記憶から行っています。