[置顶] Android代码-----广播检测手机电池

本文介绍了一种通过监听Android手机充电状态变化并控制音乐服务播放或停止的方法。使用BroadcastReceiver接收充电状态改变的广播,并根据状态启动或停止音乐服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用广播检测手机电池代码如下:

private static final String SYSTEMACTION_BATTERY_CHANGED = Intent.ACTION_BATTERY_CHANGED;

IntentFilter filter_system = new IntentFilter();
filter_system.addAction(SYSTEMACTION_BATTERY_CHANGED);
registerReceiver(systemReceiver, filter_system);

[BroadcastReceive方法代码]

private BroadcastReceiver systemReceiver = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			if (intent.getAction().equals(SYSTEMACTION_BATTERY_CHANGED)) {
				int status = intent.getIntExtra("status", -1);
				boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING
						|| status == BatteryManager.BATTERY_STATUS_FULL;
				int chargePlug = intent.getIntExtra("plugged", -1);
				boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
				boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
				if ((isCharging && usbCharge) || (isCharging && acCharge)) {
					Toast.makeText(context, "------", Toast.LENGTH_SHORT)
							.show();
					Intent intet = new Intent("com.charging.Broadcast.music");
					context.stopService(intet);
				} else {
					Intent intet = new Intent("com.charging.Broadcast.music");
					context.startService(intet);
				}
			}
		}
	};

[MusicService.java]

public class MusicService extends Service {
	private MediaPlayer mPlayer;

	@Override
	public void onCreate() {
		super.onCreate();
		mPlayer = MediaPlayer.create(this, R.raw.a);
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		mPlayer.release();
        stopSelf();
	}

	@Override
	@Deprecated
	public void onStart(Intent intent, int startId) {
		// TODO Auto-generated method stub
		super.onStart(intent, startId);
		mPlayer.start();
	}

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}

}

清单文件里注册代码

<service android:name="com.charging.Broadcast.MusicService" >
            <intent-filter>
                <action android:name="com.charging.Broadcast.music" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>


转载于:https://www.cnblogs.com/anjon520/archive/2013/03/26/3249929.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值