接收系统广播消息之监听系统开机

来源:互联网 发布:手机淘宝联盟购买省钱 编辑:程序博客网 时间:2024/06/05 08:31

除了接受用户发送的广播之外,BroadcastReceiver还有一个重要的用途:接收系统广播。如果应用需要在系统特定时刻执行某些操作,就可以通过监听系统广播来实现。Android的大量系统事件都会对外发送标准广播。下面是Android常见的广播Action常量(具体请参考API文档中关于Intent的说明)。

下面这个小程序可以监听系统开机,并自动启动某个Service,例如监听用户来电、监听用户短信、拦截黑名单电话等。具体Service应用本程序中未给出。

监听开机的BroadcastReceiver:

package com.lovo.receiver;import com.lovo.service.LaunchService;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class LaunchReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context, "开机啦!!!", Toast.LENGTH_LONG).show();Intent serviceIntent = new Intent(context, LaunchService.class);// 启动指定的Servicecontext.startService(serviceIntent);}}

配置该BroadcastReceiver:

 <receiver android:name="com.lovo.receiver.LaunchReceiver">           <intent-filter>             <action android:name="android.intent.action.BOOT_COMPLETED"/>             </intent-filter>         </receiver>


这样系统开机后,该LaunchReceiver就可以接受到广播了,并同时启动Service,Service的具体实现在此省略。

另外,监听系统开机需要如下权限:

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


 

原创粉丝点击