You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iOS及iPad设备上通过编程区分Type-C与Lightning充电器?

解决方案:使用系统原生API识别充电器类型

不同平台都提供了无需硬编码设备映射的API,能自动识别当前连接的充电器类型,适配新设备无需手动维护:

Android 平台

  • Android 11(API Level 30)起,BatteryManager新增getChargeController()方法,可获取ChargeController实例,通过它能直接获取充电功率、充电状态(有线/无线/快充等):
BatteryManager batteryManager = (BatteryManager) getSystemService(Context.BATTERY_SERVICE);
if (batteryManager != null) {
    ChargeController chargeController = batteryManager.getChargeController();
    if (chargeController != null) {
        int chargePower = chargeController.getCurrentChargePower(); // 单位:mW
        int chargingStatus = chargeController.getChargingStatus();
        // 根据chargingStatus常量判断类型,如CHARGING_STATUS_FAST_CHARGE代表快充
    }
}
  • Android 12(API Level 31)进一步支持getWirelessChargingType(),可直接区分无线充电的具体类型(如Qi、MagSafe等)

iOS 平台

  • iOS 14及以上可通过IOPMPowerSource相关API获取电源详情,包括充电器类型、功率等:
import UIKit
import IOKit.ps

func fetchChargerInfo() {
    guard let powerSources = IOPSCopyPowerSourcesInfo().takeRetainedValue() as NSArray,
          let powerSource = powerSources.firstObject as? NSDictionary else {
        return
    }
    let chargerType = powerSource[kIOPSPowerSourceTypeKey] as? String
    let maxPower = powerSource[kIOPSMaxPowerCapacityKey] as? String
    // chargerType返回值示例:AC Power(有线充电)、Wireless Charger(无线充电)
}

注意事项

  • 部分API需要对应权限,比如Android需申请BATTERY_STATS权限,iOS需启用电源访问相关权限
  • 这些API由系统底层提供,会自动适配新发布的设备和充电器类型,无需手动维护设备映射表

内容的提问来源于stack exchange,提问作者tounaobun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:37:05