Android-開關機的廣播


在上一篇博客Android-sdcard廣播的接收處理,中介紹了,如何訂閱接收者,去接收系統發送的Sdcard狀態改變廣播,而這篇博客是訂閱接收者,去接收開機/關機的廣播

 

Android操作系統在開機的時候,系統會自動發出廣播,Android操作系統在關機的時候,系統也會自動發出廣播

 

在AndroidManifest.xml訂閱接收者

     <!--
            訂閱(Xml形式訂閱接收者)
            訂閱接收者:專門去接收Android系統開機/關機/發出的廣播
         -->
        <receiver android:name=".br.MyBootBroadcastReceiver">

            <intent-filter>

                <!-- 開機完成✅ 啟動完成✅  開機是危險的行為,需要權限 -->
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <!-- 關機 -->
                <action android:name="android.intent.action.ACTION_SHUTDOWN" />

            </intent-filter>

        </receiver>

 

在AndroidManifest.xml加入關機接收權限

  <!-- 接收開機廣播的權限,開機是很危險的行為,所以需要此權限 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

 

被訂閱的開關機接收者

package liudeli.croadcast1.br;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * 開關機接收者,可以接收兩個廣播
 * 當Android操作系統開機/關機發生改變后,系統會自動的發出以下兩種廣播
 *  1.開機廣播
 *  2.關機廣播
 */
public class MyBootBroadcastReceiver extends BroadcastReceiver {

    private final String TAG = MyBootBroadcastReceiver.class.getSimpleName();

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
            Log.d(TAG, "Android操作系統開機了,運行中.......");
        } else if (Intent.ACTION_SHUTDOWN.equals(action)) {
            Log.d(TAG, "Android操作系統關機了.......");
        }
    }
}

 

關機:

 

MyBootBroadcastReceiver: Android操作系統關機了.......

 

 

開機:

12-18 00:35:27.195 1834-1834/liudeli.croadcast1 D/MyBootBroadcastReceiver: Android操作系統開機了,運行中.......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM