我如何知道电池是否因过热而停止充电,而用户 运行 我的应用程序 - Android?
How can I know if the battery stop charging because of overheat, while the user run my application - Android?
我的意思是充电器插上了但是不充电
系统有提示吗?
当我收到一条消息说黄油因为过热而停止充电时,我在 "Waze" 应用程序中看到了它。
我的应用程序也很重,有时会导致同样的问题,
所以我想知道它什么时候发生并发布警告。
另一件事是 - 我怎么知道电池停止充电是因为热量而不是因为它 100% 充满?
任何人都请帮助我...
您可以注册一个简单的广播接收器并可以监控电池电量和充电状态,或者可以使用以下粘性意图。例如:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;
并且只要您使用所需的 batteryPct,您就可以通知用户。要获取电池温度,您还可以从 BatteryManager.EXTRA_TEMPERATURE
i-e
中找到信息
val temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE)
有关详细信息,请参阅此 android reference
我的意思是充电器插上了但是不充电
系统有提示吗? 当我收到一条消息说黄油因为过热而停止充电时,我在 "Waze" 应用程序中看到了它。 我的应用程序也很重,有时会导致同样的问题, 所以我想知道它什么时候发生并发布警告。
另一件事是 - 我怎么知道电池停止充电是因为热量而不是因为它 100% 充满?
任何人都请帮助我...
您可以注册一个简单的广播接收器并可以监控电池电量和充电状态,或者可以使用以下粘性意图。例如:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;
并且只要您使用所需的 batteryPct,您就可以通知用户。要获取电池温度,您还可以从 BatteryManager.EXTRA_TEMPERATURE
i-e
val temperature = batteryStatus.getIntExtra(BatteryManager.EXTRA_TEMPERATURE)
有关详细信息,请参阅此 android reference