1、需要原始碼才能編譯
2、修改專案的Android.mk檔案,新增
LOCAL_CERTIFICATE := platform
3、AndroidManifest.xml中新增許可權
3.1 manifest標籤中新增
android:sharedUserId="android.uid.system"
3.2 使用許可權
<uses-permission android:name="android.permission.SHUTDOWN"/>
4、java程式碼
- // 建立Intent
- // 如果是要重啟,則使用Intent.ACTION_REBOOT
- Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
- // 設定是否需要使用者確認,若不需要,可以不設定或設定為false
- intent.putExtra(Intent.EXTRA_KEY_CONFIRM, true);
- // 當作新任務執行
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- // 啟動
- startActivity(intent);
據說還可以使用Broadcast的方式呼叫,不過我試了一下,視窗是出來了,但一直停在關機的進度條那。不知道是不是機子的問題。
程式碼如下:
- Intent i = new Intent(Intent.ACTION_REBOOT);
- i.putExtra("nowait", 1);
- i.putExtra("interval", 1);
- i.putExtra("window", 0);
- sendBroadcast(i);