2015-08-27 23 views
-1

我想關閉並在我的應用程序重新啓動。 我搜索了一下,發現了一些關於stackoverflow的回答問題,但所有說的設備必須紮根,這在我的情況下是不可能的。這些命令也是特定於設備的。 是否有任何選項,關閉或重新啓動Android設備programaticaly
嘗試下面的事情錯誤在Android中執行重新啓動命令

String command="/system/bin/reboot"; 

     try { // Run Script 

      proc = runtime.exec("su"); 
      osw = new OutputStreamWriter(proc.getOutputStream()); 
           osw.write(command); 
        osw.flush(); 
      osw.close(); 

     } catch (IOException ex) {} 

Runtime.getRuntime().exec(new String[]{"su","-c","reboot now"}); 
+0

如果您可以使用設備密鑰對您的應用程序進行簽名,那麼您可以在設備上沒有root權限的情況下執行此操作。 – liorlis

回答

0

的設備我有現在的根源,所以我不能測試,但任何您需要使用設備密鑰簽署您的應用程序或使其成爲系統應用程序。

這是應用程序的例子,對我工作得很好:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    pm.reboot(null); 
} 

,並加入到體現:

使用許可權的android:NAME = 「android.permission.REBOOT」/>

希望它有幫助