安卓 監聽開機關機廣播


版權聲明:本文為博主原創文章,轉載需注明出處。 https://blog.csdn.net/github_27263697/article/details/77848177

項目背景:在錄像過程中,遇到關機事件,想要監聽關機操作,從而停止錄像,退出程序。

一、監聽開機廣播

Android系統啟動完成后會發出啟動完成廣播(android.intent.action.BOOT_COMPLETED),所有注冊了接收啟動完成廣播的接收器(BroadcastReceiver)都會收到此廣播。

 1、在AndroidManifest.xml文件里添加授予應用程序訪問系統開機事件的權限


    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  


 2、編寫系統發出的開機啟動完成廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:  

    public class BootBroadcastReceiver extends BroadcastReceiver {  
      
        private static final String TAG = "BootBroadcastReceiver";   
        private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";    
        @Override  
        public void onReceive(Context context, Intent intent) {    
            if (intent.getAction().equals(ACTION_BOOT)) { //開機啟動完成后,要做的事情
                Log.i(TAG, "BootBroadcastReceiver onReceive(), Do thing!");  
            }  
        }  
    }

 3、在AndroidManifest.xml文件里注冊廣播接收器

    <receiver android:name="com.android.test.BootBroadcastReceiver" >  
             <intent-filter >  
                 <action android:name="android.intent.action.BOOT_COMPLETED" />  
      
                 <category android:name="android.intent.category.HOME" />  
             </intent-filter>  
         </receiver>  


二、監聽關機廣播

    Android系統提供了與開機廣播對應的關機廣播,在系統即將關閉時發出此廣播。

       1、編寫在系統即將關閉時發出的廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:


    public class ShutdownBroadcastReceiver extends BroadcastReceiver {  
        private static final String TAG = "ShutdownBroadcastReceiver";       
        private static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";  
          
        @Override  
        public void onReceive(Context context, Intent intent) {  //即將關機時,要做的事情          
            if (intent.getAction().equals(ACTION_SHUTDOWN)) {  
                Log.i(TAG, "ShutdownBroadcastReceiver onReceive(), Do thing!");  
            }  
        }  
    }

 2、在AndroidManifest.xml文件里注冊廣播接收器

    <receiver android:name="com.android.test.ShutdownBroadcastReceiver" >  
             <intent-filter >  
                 <action android:name="android.intent.action.ACTION_SHUTDOWN" />  
                 <category android:name="android.intent.category.HOME" />  
             </intent-filter>  
         </receiver>  

注:開機關機操作有三種方式:

1、重新啟動,關閉后立刻又開機。

     開機啟動完成和即將關機時發出的廣播,都可以接收到。

2、單純關機操作

     即將關機時發出的廣播接收不到。

3、單純開機操作

     開機啟動完成發出的廣播時可以接收到的。

 
---------------------  
作者:大口霞  
來源:CSDN  
原文:https://blog.csdn.net/github_27263697/article/details/77848177?utm_source=copy  
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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