Loading

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" />

看一下效果,可以看到,在拉动电量条时,控制台输出的文字:“收到了电量变化的广播”

 

posted @ 2023-03-11 00:27  冰稀饭Aurora  阅读(106)  评论(0编辑  收藏  举报