BroadcastReceiver-监听电量变化的广播
BroadcastReceiver ,也就是广播接收器,可以让我们的 APP监听系统或其他应用的广播。
今天学习了一下如何使用BroadcastReceiver 监听系统的电量变化。
单纯只是实现这个功能还是很简单的,看一下代码
我们需要创建一个广播接收者,继承自 BroadcastReceiver
在其中的onReceive方法中,可以设置监听成功后执行的操作
同时我们需要注册广播
而监听电量变化用的是
ACTION_BATTERY_CHANGED这里
详情可以看下面的注释
package com.example.broadcastapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //收听电量变化 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); // BatteryLevelReceiver batteryLevelReceiver = new BatteryLevelReceiver(); //注册广播 this.registerReceiver(batteryLevelReceiver,intentFilter); } //首先创建一个广播接收者,继承自 BroadcastReceiver private class BatteryLevelReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.d(TAG,"收到了电量变化的广播 action is =="+ action); } } }
同时,我们不要忘记在Manifest中加入这样一句,这样我们才能监听电量
<uses-permission android:name="android.permission.BATTERY_STATS" tools:ignore="ProtectedPermissions" />
看一下效果,可以看到,在拉动电量条时,控制台输出的文字:“收到了电量变化的广播”