android關機廣播
1. android 接受開機廣播
Android接收開機廣播,需要用到播廣播接收者BroadcastReceiver組件。
具體代碼:
在配置文件AndroidManifest.xml中向系統注冊receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>需要添加相應許可權
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在Receiver中就可以添加開機需要進行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}}
2. android 怎麼讓設備關機
//廣播方式關機重啟
case R.id.shutdown_btn1:
Log.v(TAG, "broadcast->shutdown");
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
//其中false換成true,會彈出是否關機的確認窗口
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
break;
case R.id.reboot_btn1:
Log.v(TAG, "broadcast->reboot");
Intent intent2 = new Intent(Intent.ACTION_REBOOT);
intent2.putExtra("nowait", 1);
intent2.putExtra("interval", 1);
intent2.putExtra("window", 0);
sendBroadcast(intent2);
break;
3. android 系統關機 調用什麼方法
系統關機,可以發送一個廣播,如下代碼:
一. 發送廣播方式
Broadcast是Android的四大基本組件之一,也就是我們常說的廣播。Android系統本身就包含了許多廣播,時時刻刻在監聽著系統中注冊的每一個廣播並隨時准備響應操作。其中,就有關於關機或重啟的廣播:Intent.ACTION_REQUEST_SHUTDOWN和Intent.ACTION_REBOOT,通過發送這兩個廣播,Android就能自動接收廣播,並響應關機或
public static final String ACTION_REBOOT =
"android.intent.action.REBOOT";
public static final String ACTION_REQUEST_SHUTDOWN = "android.intent.action.ACTION_REQUEST_SHUTDOWN";
Intent.java位於源碼/frameworks/base/core/java/android/content/Intent.java下面。具體實現方法如下
//廣播方式關機重啟
case R.id.shutdown_btn1:
Log.v(TAG, "broadcast->shutdown");
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
//其中false換成true,會彈出是否關機的確認窗口
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
break;
case R.id.reboot_btn1:
Log.v(TAG, "broadcast->reboot");
Intent intent2 = new Intent(Intent.ACTION_REBOOT);
intent2.putExtra("nowait", 1);
intent2.putExtra("interval", 1);
intent2.putExtra("window", 0);
sendBroadcast(intent2);
break;
需要注意的幾點是:
第一,如前面所說,需要將APP提升至系統許可權,具體做法是在AndroidMenifest.xml中添加如下代碼
android:sharedUserId="android.uid.system"
第二,同時需要添加關機許可權
<uses-permission android:name="android.permission.SHUTDOWN"></uses-permi
4. 安卓開發 如何關閉廣播
很牛逼的一個問題。廣播不是用來關閉的!動態注冊廣播接收器特點是當用來注冊的Activity關掉後,廣播也就失效了。我們可以通過兩種方式注冊BroadcastReceiver,一是在Activity啟動過程中通過代碼動態注冊,二是在AndroidManifest.xml文件中利用<receiver>標簽進行靜態注冊。對於第一種方法,我們需要養成一個良好的習慣:在Activity進入停止或者銷毀狀態的時候使用unregisterReceiver方法將注冊的BroadcastReceiver注銷掉。如果通過第二種方法注冊的BroadcastReceiver,是否需要通過代碼進行注銷呢?如果通過<receiver>標簽來注冊的BroadcastReceiver,那麼該對象的實例在onReceive被調用之後就會在任意時間內被銷毀。也就是說,我們並需要擔心靜態注冊的BroadcastReceiver的銷毀問題。靜態注冊無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器也是打開著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。
5. Android開發問題。 怎麼得到關機之前的一個數據
可以利用廣播 開機有一個guang'b廣播 只發送一次 android.intent.action.BOOT_COMPLETED
關機廣播 android.intent.action.ACTION_SHUTDOWN
6. 如何解決App無法收到android開機廣播
今天發現在android2.2時寫的一款程序運行在android4.0上的時候無法接受開機廣播(ACTION_BOOT_COMPLETED)。
後來發現是沒有添加<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>的問題。
在3.1以前,android對自啟動管理不是很嚴格,只要你的BroadcastReceiver的IntentFilter聲明了<action android:name="android.intent.action.BOOT_COMPLETED" />
就可以接收到開機廣播。但是在android3.1對程序的自啟動進行了規范(官方文檔請點擊此處)。
假如我們沒有指定use-permission就無法收到開機廣播。
如果你也碰到了這個問題,檢查一下自己是不是忘記添加permission了吧^_^
7. android 斷電下會不會發送關機廣播
操作步驟:
1、在手機的桌面空白處長按,待手機桌面上出現菜單後松開;
2、選擇「Android小組件」選項
3、在彈出的菜單中選擇自己想要添加的桌面插件就可以了。
刪除插件的方法也是非常的簡單,你只要在想刪除的插件上面長按一會,待手機震動後,拖動桌面插件到屏幕的最下方,就能夠刪除桌面插件了。
8. android 長按10秒關機所發的intent
android關機開機都會發送廣播。
關機廣播:android.intent.action.ACTION_SHUTDOWN
開機廣播:android.intent.action.BOOT_COMPLETED
9. android接受不到開機廣播
intent
判斷
intent.getAction()是否與
android.intent.action.BOOT_COMPLETED
相同,發出的是這個,你沒監聽這個Action
。
另外注意的是,如果是
3.1以下的系統,沒問題。3.1以上的系統,需要有Activity存在,並且啟動一次程序,才能夠實現廣播。
10. android APP不啟動能接收到系統廣播嗎
從Android4.0之後就不能接收系統開機廣播了必須用戶打開你的應用才能啟動你的服務