gpt4 book ai didi

android - 电池管理器未收到 BATTERY_PLUGGED_AC int

转载 作者:行者123 更新时间:2023-11-29 02:07:01 27 4
gpt4 key购买 nike

我有一个电池小部件,由于某种原因,当手机插入交流电时它没有收到 BATTERY_PLIGGED_AC 整数。

我有另一个适用于 BATTERY_PLUGGED_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 bundle 在一起,但不是 AC。因此,我所做的只是为 BatteryManager.BATTERY_PLUGGED_AC 变量的值分配一个新的 private int charging。如果这是真的(并且设备正在通过交流电充电),那么该值为 1,所以我只是将之前的 if 语句替换为

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) 感到困惑。

谢谢!

关于android - 电池管理器未收到 BATTERY_PLUGGED_AC int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com