Android 监听开机广播,实现程序自启
手机开机,会发送一条广播,可以注册一个广播接受者,当接受到这条广播的时候,即可执行需要执行的操作。
需要在AndroidManifest.xml中,注册广播,原样复制,修改成自己的广播类。
<receiver android:name="包名+类名">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
注意:需要加权限,否则广播不能接收。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
广播类(我这里随意弹出一个notification,你可随意做你想做的事情):
public class Main3Activity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent mIntent) {
// 在这里干你想干的事(启动一个Service,Activity等)
final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
// params
int smallIconId = R.mipmap.ic_launcher;
Bitmap largeIcon = ((BitmapDrawable) context.getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap();
String info = "通知内容";
// action when clicked
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("host://anotheractivity"));
builder.setLargeIcon(largeIcon)
.setSmallIcon(smallIconId)
.setContentTitle("通知标题")
.setContentText(info)
.setTicker(info)
.setContentIntent(PendingIntent.getActivity(context, 0, intent, 0));
final Notification n = builder.getNotification();
nm.notify("NotificationActivityDemo".hashCode(),n);
}
}