android - 检查设备是否已插入

标签 android batterymanager

我的应用有一个广播接收器来监听 ACTION_POWER_CONNECTED 的变化,然后标记屏幕以保持打开状态。

我缺少的是应用程序在首次运行时检查充电状态的能力。任何人都可以帮我编写代码以手动检查充电状态吗?

最佳答案

感谢 CommonsWare,这是我编写的代码。

public class Power {
    public static boolean isConnected(Context context) {
        Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
        int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        return plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS;
    }
}

if (Power.isConnected(context)) {
    ...
}

或 Kotlin 版本

object Power {
    fun isConnected(context: Context): Boolean {
        val intent = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
        val plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
        return plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS
    }
}

http://developer.android.com/training/monitoring-device-state/battery-monitoring.html

关于android - 检查设备是否已插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283491/

相关文章:

android - BATTERY_STATUS_CHARGING 和 BATTERY_PLUGGED_AC 有什么区别?

android - 在 pjsip android 中从前向后切换相机

java - Firebase 未触发成功或失败

java - 如何使用 AVD 正确运行 Android 应用程序?

android - 如何在 LibGDX 中配置内存管理?

android - 如何在Android中制作一个可以永远运行并且永不退出的守护进程或服务?

android - 如何以编程方式获取android中每个应用程序的电池使用百分比

android - 如何检查电池容量 Android Wear(API 级别 20)

Android BatteryManager 为所有属性检索调用返回 0

java - 获取 BATTERY_CHANGED flg=0x60000010(有额外的)当电池处于定义水平时尝试做某事