注册广播,如下:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
在清单文件中声明广播,如下:
<receiver android:name=".PowerConnectionReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED"/>
</intent-filter>
</receiver>
定义广播,如下:
public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
int mBatteryLevel;
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
Log.d(TAG, "batteryReceiver ACTION_BATTERY_CHANGED");
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);
synchronized (this) {
mBatteryLevel = level * 100 / scale;
}
Log.d(TAG, "mBatteryLevel = " + mBatteryLevel + " %");
Log.d(TAG, "mExitLowPower = " + mExitLowPower);
if (mBatteryLevel <= 4 && !mExitLowPower) {//电量低于4%,停止录像
showBatteryLowAndFinish();
if((mCameraState == STATE_RECORDING_IN_PROGRESS) && (mCameraActor instanceof VideoActor)){
Log.v(TAG,"batteryReceiver videoActor");
mCameraActor.stopActor();
}
exitCameraAwhileWhenLowPower();
} else if (mBatteryLevel > 4){
mExitLowPower = false;
}
}
}
}
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
在清单文件中声明广播,如下:
<receiver android:name=".PowerConnectionReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED"/>
</intent-filter>
</receiver>
定义广播,如下:
public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
int mBatteryLevel;
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
Log.d(TAG, "batteryReceiver ACTION_BATTERY_CHANGED");
int level = intent.getIntExtra("level", 0);
int scale = intent.getIntExtra("scale", 100);
synchronized (this) {
mBatteryLevel = level * 100 / scale;
}
Log.d(TAG, "mBatteryLevel = " + mBatteryLevel + " %");
Log.d(TAG, "mExitLowPower = " + mExitLowPower);
if (mBatteryLevel <= 4 && !mExitLowPower) {//电量低于4%,停止录像
showBatteryLowAndFinish();
if((mCameraState == STATE_RECORDING_IN_PROGRESS) && (mCameraActor instanceof VideoActor)){
Log.v(TAG,"batteryReceiver videoActor");
mCameraActor.stopActor();
}
exitCameraAwhileWhenLowPower();
} else if (mBatteryLevel > 4){
mExitLowPower = false;
}
}
}
}