
不幸的是,如果我的应用程序在电池电量不足的情况下启动,那么我就不会收到意图;它不粘,所以我无法检测电池警报是否存在. ACTION_BATTERY_CHANGED是粘性的,但它只告诉我当前的电池充电状态,而不是系统是否已宣布低电量警报.
有没有办法检测电池是否在任何给定时刻都很低?
解决方法 这是一个非常棘手的问题.AndroID Developer上的相关代码有误.基本上,您可以在此链接上学习如何检测它:
https://developer.android.com/training/monitoring-device-state/battery-monitoring.html
您可以使用方法OnReceive(上下文上下文,意图意图)来检测广播接收器是否正在充电或不充电和电池电量不足{}
但是,此链接中存在错误,用于监视重大更改.[请注意, *** 作名称为androID.intent.action.ACTION_BATTERY_LOW]
[1]
但是让我们看看它是如何在Intent中描述的.
ACTION_BATTERY_LOW
在API级别1中添加
字符串ACTION_BATTERY_LOW
广播 *** 作:表示设备电池电量不足.该广播对应于“低电量警告”系统对话框.
这是受保护的意图,只能由系统发送.
常量值:“androID.intent.action.BATTERY_LOW”
您可以在AndroID Developers Intent中找到它.
换句话说,这里发生了一个错误.它应该是action.BATTERY_LOW而不是action.ACTION_BATTERY_LOW.所以AndroIDManifest中的代码应该是:
<receiver androID:name=".receiver.batterylevelReceiver"> <intent-filter> <action androID:name="androID.intent.action.BATTERY_LOW"/> <!--instead of androID.intent.action.ACTION_BATTERY_LOW--> </intent-filter> </receiver>
还要确保您的Receiver正确无误.
public class batterylevelReceiver extends broadcastReceiver {@OverrIDepublic voID onReceive(Context context,Intent intent) { Toast.makeText(context,"BAttery's dying!!",Toast.LENGTH_LONG).show(); Log.e("","BATTERY LOW!!");} }
调试或登录笔记本电脑很困难,使用Toast可能有所帮助.
Toast.makeText(context,Toast.LENGTH_LONG).show(); //Toast.makeText(Context context,String str,Integer integer).show();
希望它有助于解决您的问题.
总结以上是内存溢出为你收集整理的android – 轮询ACTION_BATTERY_LOW全部内容,希望文章能够帮你解决android – 轮询ACTION_BATTERY_LOW所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)