Android 电池管理器未接收到电池\u已插入\u AC int
我有一个电池小部件,由于某种原因,当手机插入交流电时,它不会接收到Android 电池管理器未接收到电池\u已插入\u AC int,android,widget,power-management,Android,Widget,Power Management,我有一个电池小部件,由于某种原因,当手机插入交流电时,它不会接收到电池\u pliged_AC整数 我有另一个用于电池\u插入式\u USB的小部件,它工作正常 我看不出我的代码有任何错误: public void onReceive(Context context, Intent intent) { status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); batterylevel
电池\u pliged_AC
整数
我有另一个用于电池\u插入式\u USB
的小部件,它工作正常
我看不出我的代码有任何错误:
public void onReceive(Context context, Intent intent) {
status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN);
batterylevel = intent.getIntExtra("level", 0);
updateAppWidget(context);
}
public void updateAppWidget(Context context){
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.androidbatterywidget_layout);
updateViews.setTextViewText(R.id.textView1, " " + batterylevel + "%");
if (status == BatteryManager.BATTERY_PLUGGED_USB)
updateViews.setImageViewResource(R.id.imageView2, R.drawable.usb);
else if (status == BatteryManager.BATTERY_PLUGGED_AC)
updateViews.setImageViewResource(R.id.imageView2, R.drawable.bolt);
else
updateViews.setImageViewResource(R.id.imageView2, R.drawable.empty);
希望有人能发现我做错了什么。谢谢 想了个办法。很抱歉,这篇文章我自己应该多看一会儿。作为将来的参考,如果人们似乎有同样的问题,在我看来,USB值与BatteryManager.BATTERY_STATUS_UNKNOWN捆绑在一起,而不是AC。因此,我所做的只是为BatteryManager.BATTERY_PLUGGED_AC变量的值分配一个新的私有int充电。如果这是真的(并且设备通过交流充电),那么值是1,所以我简单地用
if (charging == 1)
updateViews.setImageViewResource(R.id.imageView2, R.drawable.bolt);
现在代码是:
private int batterylevel = 0;
private int status;
private int charging;
private BroadcastReceiver myReceiver = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
status = intent.getIntExtra("status", BatteryManager.BATTERY_HEALTH_UNKNOWN);
charging = intent.getIntExtra("plugged", BatteryManager.BATTERY_PLUGGED_AC);
batterylevel = intent.getIntExtra("level", 0);
updateAppWidget(context);
}
public void updateAppWidget(Context context){
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.androidbatterywidget_layout);
updateViews.setTextViewText(R.id.textView1, " " + batterylevel + "%");
if (charging == 1)
updateViews.setImageViewResource(R.id.imageView2, R.drawable.bolt);
else if (status == BatteryManager.BATTERY_PLUGGED_USB)
updateViews.setImageViewResource(R.id.imageView2, R.drawable.usb);
else
updateViews.setImageViewResource(R.id.imageView2, R.drawable.empty);
我确信有一种更“雄伟”的方法可以做到这一点,但我只是对为什么USB int被插入USB(2)而不是AC(1)时被传递感到困惑
谢谢 你好,我找到了一条绕过它的路。写了一篇帖子来回答我自己的问题,但是作为一个堆栈溢出的初学者,我不得不等8个小时,直到我能回答我自己的问题。我已经保存了我的答案,并将在8小时后发布,以防将来人们遇到同样的问题。我得承认这很奇怪!