开机关机广播和电量变化广播

原创 2015年11月18日 17:44:34

广播的使用步骤:
1.注册(在AndroidManifest.xml中声明receiver或者手动调用registerReceiver方法);
2.声明权限;
3.实现广播;
4.取消注册(和注册需要一对一调用);

注册:

mContext.registerReceiver(mVoltageCheck, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
mContext.registerReceiver(ShutdownReceiver, new IntentFilter(Intent.ACTION_SHUTDOWN));

取消注册:

mContext.unregisterReceiver(mVoltageCheck);
mContext.unregisterReceiver(ShutdownReceiver);

声明权限:

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

实现:
关机广播

private BroadcastReceiver ShutdownReceiver = new BroadcastReceiver() {
        final static String TAG = "ShutdownReceiver";
        final static String onReceive = "onReceive";
        final static String ACTION = "android.intent.action.ACTION_SHUTDOWN";//截取关机事件

   @Override
    public void onReceive(Context arg0, Intent arg1) {
            // TODO Auto-generated method stub
            Log.d(TAG,onReceive);
            if (arg1.getAction().equals(ACTION)) {
                Log.e(TAG,"imageCount = "+imageCount);
                stop = false;
            }
            Log.e(TAG,ACTION);
        }
    };

监测电量广播:

private BroadcastReceiver mVoltageCheck = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
                // 电压 电池电量
                Log.i(TAG,"ACTION_BATTERY_CHANGED");
                int level = intent.getIntExtra("level", -1);
                int voltage = intent.getIntExtra("voltage", 0);
                Log.i(TAG,"level = "+level);
                Log.i(TAG,"voltage = "+voltage);
                if(voltage == 0){
                    ......
                }
            }
        }
    };

开机广播:
权限

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

注册:

<receiver android:name="com.pax.reboot.BootBroadcastReceiver">
<intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED"/   >
</intent-filter>
</receiver>

实现:

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

public class BootBroadcastReceiver extends BroadcastReceiver {
final static String TAG = "BootBroadcastReceiver";
final static String ACTION = "android.intent.action.BOOT_COMPLETED";

@Override
public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
Log.e(TAG,"onReceive");                if(arg1.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent intent = new Intent(arg0, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
arg0.startActivity(intent);
        }
    }
}

Android如何监听开机广播和关机广播

需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里。 一、开机广播监听:         Android系统启动完成后会发出启动完成广播(an...
  • android_ls
  • android_ls
  • 2013年02月23日 20:44
  • 16513

Andoird 监听开机广播和关机广播

需求:有时候,我们需要自己的程序在开机后自动运行;在关机时,记录一些信息到文件中. 一、开机广播监听 Android系统启动完成后会自动发出启动完成广播(android.intent.action....
  • chenyq2008
  • chenyq2008
  • 2015年02月04日 11:01
  • 2800

Android 电量变化监听

文档:http://developer.android.com/training/monitoring-device-state/battery-monitoring.html Intent...
  • L25000
  • L25000
  • 2015年06月15日 13:30
  • 3589

Android开机广播和关机广播

原文地址:http://blog.csdn.net/coolszy/article/details/6544598 有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用An...
  • w250shini11
  • w250shini11
  • 2013年03月25日 10:33
  • 886

Android APP无法接收开机广播

参考http://blog.csdn.net/grhunter/article/details/5105784 实现Android开机启动APP,代码如下: 配置文件如下: ...
  • dhull
  • dhull
  • 2015年02月05日 14:11
  • 2195

Android开机广播和关机广播

有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用Android中的广播机制,编写一个继承BroadcastReceiver的类,接受系统启动关闭广播。代码如下: [java] ...
  • u010695063
  • u010695063
  • 2014年12月25日 16:15
  • 281

监听开机广播的替代解决方案

2015年2月27日23:35,我的第一篇技术博客诞生了。 由于android到了4.0之后,在安全的方面有了很大的改善,其中监听开机广播就是一个很大的改善。在没有界面的情况下,设置任何权限都没...
  • unfind0829
  • unfind0829
  • 2015年02月27日 23:27
  • 1039

Android开机广播和关机广播

 有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用Android中的广播机制,编写一个继承BroadcastReceiver的类,接受系统启动关闭广播。代码...
  • dongsheng186
  • dongsheng186
  • 2015年02月09日 14:31
  • 304

android接收开机广播

之前做了个客户端项目,现在有个问题维护。客户的问题是:推送连接一段时间后就接收不到了。我的第一直觉是推送服务被kill掉了,没有自启,但是后来我发现不是这个原因,当手机重启后该服务没有启动,也就是说没...
  • xxm282828
  • xxm282828
  • 2015年02月07日 18:29
  • 1981

22 电量变化广播

权限 意图 public static final String ACTION_BATTERY_CHANGED = “android.intent.action.BATTERY_CHA...
  • qfanmingyiq
  • qfanmingyiq
  • 2016年09月21日 19:50
  • 182
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开机关机广播和电量变化广播
举报原因:
原因补充:

(最多只允许输入30个字)