アンドロイドICSと再起動、シャットダウンの機能
リスタート機能を備えたアンドロイドAのシャットダウンに関する最近の研究。また、多くのオンライン記事、いくつかの慣行があります。私は、以下の導入をいくつかの方法を試してみました:
<A>、Androidのリブート
完全に実行するためにはAndroidjavaシェル層。しかし、テストの開発の作者はユーザー版を完了できない、再起動、シャットダウンハングインターフェイス上、工学のバージョンでコンパイル同じコードを再起動することを見出しました。
/ ************************************************* ************************************************** ** /
免責事項:によって、このブログのコンテンツhttp://blog.csdn.net/sundesheng125 元、ソースを明記してください、ありがとうございました!
/ ************************************************* ************************************************** ** /
次のように使用することは、完全な再起動へのコードのENGバージョンをコマンドシェル:
String cmd = "su -c reboot";
exeShell(cmd);
public void exeShell(String cmd){
try{
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(
new InputStreamReader(
p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
Log.i("exeShell",line);
}
}
catch(Throwable t)
{
t.printStackTrace();
}
}
ヒントエラーは、アクセス許可の問題ですが、コードは、インターネット上でREBOOT権を与えたマニフェストはまだありません良い解決策、次のエラーメッセージを説明する瞬間を見つけるために、同じです。
01-01 08:05:26.319 W/System.err( 776): java.io.IOException: Error running exec(). Command: [su, -c, reboot] Working Directory: null Environment: null
01-01 08:05:26.319 W/System.err( 776): at java.lang.ProcessManager.exec(ProcessManager.java:211)
01-01 08:05:26.319 W/System.err( 776): at java.lang.Runtime.exec(Runtime.java:168)
01-01 08:05:26.319 W/System.err( 776): at java.lang.Runtime.exec(Runtime.java:241)
01-01 08:05:26.319 W/System.err( 776): at java.lang.Runtime.exec(Runtime.java:184)
01-01 08:05:26.319 W/System.err( 776): at com.android.settings.DevelopmentSettings.exeShell(DevelopmentSettings.java:591)
01-01 08:05:26.319 W/System.err( 776): at com.android.settings.DevelopmentSettings.onPreferenceChange(DevelopmentSettings.java:580)
01-01 08:05:26.319 W/System.err( 776): at android.preference.Preference.callChangeListener(Preference.java:885)
01-01 08:05:26.319 W/System.err( 776): at android.preference.ListPreference.onDialogClosed(ListPreference.java:265)
01-01 08:05:26.329 W/System.err( 776): at android.preference.DialogPreference.onDismiss(DialogPreference.java:381)
01-01 08:05:26.329 W/System.err( 776): at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1235)
01-01 08:05:26.329 W/System.err( 776): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 08:05:26.329 W/System.err( 776): at android.os.Looper.loop(Looper.java:137)
01-01 08:05:26.329 W/System.err( 776): at android.app.ActivityThread.main(ActivityThread.java:4424)
01-01 08:05:26.329 W/System.err( 776): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 08:05:26.329 W/System.err( 776): at java.lang.reflect.Method.invoke(Method.java:511)
01-01 08:05:26.329 W/System.err( 776): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-01 08:05:26.329 W/System.err( 776): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-01 08:05:26.329 W/System.err( 776): at dalvik.system.NativeStart.main(Native Method)
01-01 08:05:26.329 W/System.err( 776): Caused by: java.io.IOException: Permission denied
01-01 08:05:26.329 W/System.err( 776): at java.lang.ProcessManager.exec(Native Method)
01-01 08:05:26.339 W/System.err( 776): at java.lang.ProcessManager.exec(ProcessManager.java:209)
01-01 08:05:26.339 W/System.err( 776): ... 17 more
01-01 08:05:26.369 W/InputManagerService( 174): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4138ecb8