java - 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 以查看问题出在哪里,但我什么也没弄清楚
任何帮助深表感谢
解决方案
推荐阅读
- javascript - 我应该在哪里获取异步数据?
- javascript - 使用 componentDidMount 和 componentWillUnmount 在 React 中添加和删除事件监听器
- go - Go gin 获取请求正文 json
- java - Swing Timer 调用动作执行了两次
- google-cloud-dataflow - 问题:BigQueryIO 为每个输入行创建一个文件,是否正确?
- postman - 我应该将生成的邮递员文档保存在哪里?
- ios - 有什么方法可以从我的网站取消 iOS InAppPurchase?
- python - 使用 xpath 从 span 中提取值
- python - Django登录表单问题
- php - Laravel Socialite 如何在重定向到提供者后将变量保留在会话中