首页 > 解决方案 > BATTERY_CHANGED 广播接收器未唤醒

问题描述

我正在开发一个 Android Studio 项目,该项目在手机连接到电源时执行一些操作。为了做到这一点,我制作了一个广播接收器来监听android.intent.action.BATTERY_CHANGED并启动一个 java 活动。但事实证明我的活动从未启动。这是我的代码:

public class Receiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "45441141645", Toast.LENGTH_LONG).show();
        //This toast here is never displayed



        boolean charging = false;
        Toast.makeText(context, "Tried", Toast.LENGTH_LONG).show();
        int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
        boolean batteryCharge = status == BatteryManager.BATTERY_STATUS_CHARGING;

        int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
        boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

        if (batteryCharge) charging=true;
        if (usbCharge) charging=true;
        if (acCharge) charging=true;

        if (charging) Toast.makeText(context, "Battery Charging", Toast.LENGTH_LONG).show();;


    }


}

我的清单的一部分:

<receiver android:name=".Receiver"  android:exported="true" android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.BATTERY_CHANGED"/>
            </intent-filter>

        </receiver>
    </application>

我还尝试在我的代码中添加一些 Log.d 以查看问题出在哪里,但我什么也没弄清楚

任何帮助深表感谢

标签: javaandroid

解决方案


推荐阅读