2016-07-14 97 views
0

我想以編程方式關閉我的自定義android設備。 我正在使用下面的代碼來做同樣的事情,但它正在重新啓動。我希望設備完全關閉。如何使用Intent或PowerManager API以編程方式關閉Android設備?

Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN"); 
      intent.putExtra("android.intent.extra.KEY_CONFIRM", false); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 

如何實現完全關閉i,e避免自動重啓?

注意:我已經使用平臺簽名簽署了應用程序。 將其放置在/ system/app中 在清單中添加了<uses-permission android:name="android.permission.SHUTDOWN" />權限。

+0

請參閱此鏈接可能會幫助您http://stackoverflow.com/questions/24693682 /關閉設備編程 –

+0

@HariHaran謝謝,我會檢查這一點。 – user2879697

回答

0

試試這個代碼,它可能有幫助。

try { 
    Process p = Runtime.getRuntime().exec(new String[]{ "su", "-c", "reboot" }); 
p.waitFor(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 
+0

謝謝,但我不想使用超級用戶命令。 – user2879697

0
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN"); 
i.putExtra("android.intent.extra.KEY_CONFIRM", true); 
startActivity(i); 
+0

謝謝,我會檢查這 – user2879697

+0

我用這個,但因爲我從服務調用它,它要求使用intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。如果我使用這個標誌,它只是重新啓動。 – user2879697

1

如果你的設備是植根,您可以使用此代碼關閉

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot -p" }); 

,並使用此代碼爲重啓

Java.Lang.Runtime.GetRuntime().Exec(new String[] { "/system/xbin/su", "-c", "reboot now" }); 

我用這個上Xamarin.Android

相關問題