Android 开机充电图标和充电动画效果
首先驱动需要先获取到2个powersupply
kernel\msm-3.18\drivers\usb\phy\phy-msm-usb.c
motg->usb_psy.name="usb"; motg->usb_psy.type=POWER_SUPPLY_TYPE_USB; motg->usb_psy.supplied_to=otg_pm_power_supplied_to; motg->usb_psy.num_supplicants=ARRAY_SIZE(otg_pm_power_supplied_to); motg->usb_psy.properties=otg_pm_power_props_usb; motg->usb_psy.num_properties=ARRAY_SIZE(otg_pm_power_props_usb); motg->usb_psy.get_property=otg_power_get_property_usb; motg->usb_psy.set_property=otg_power_set_property_usb; motg->usb_psy.property_is_writeable =otg_power_property_is_writeable_usb; if(!msm_otg_register_power_supply(pdev,motg)) psy=&motg->usb_psy;
kernel\msm-3.18\drivers\power\bq2570x\bq2570x_charger.c
usb_psy=power_supply_get_by_name("usb"); staticintbq2570x_psy_register(structbq2570x*bq) { intret; bq->batt_psy.name="dc_o2"; bq->batt_psy.type=POWER_SUPPLY_TYPE_BATTERY; bq->batt_psy.properties=bq2570x_charger_props; bq->batt_psy.num_properties=ARRAY_SIZE(bq2570x_charger_props); bq->batt_psy.get_property=bq2570x_charger_get_property; bq->batt_psy.set_property=bq2570x_charger_set_property; bq->batt_psy.external_power_changed=bq2570x_external_power_changed; bq->batt_psy.property_is_writeable=bq2570x_charger_is_writeable; ret=power_supply_register(bq->dev,&bq->batt_psy); if(ret<0){ pr_err("failedtoregisterbatt_psy:%d\n",ret); returnret; } return0; }
充电的闪电图标和充电动画启动逻辑
闪电图标启动逻辑:POWER_SUPPLY_TYPE_USB的powersupply上报USB类型(CDP,DCP,USB)
power_supply_set_supply_type(bq->usb_psy,POWER_SUPPLY_TYPE_USB); ret=power_supply_set_online(bq->usb_psy,true); power_supply_changed(bq->usb_psy);
充电动画的启动逻辑:POWER_SUPPLY_TYPE_BATTERY的powersupply上报充电状态
(CHARGE_STATE_NOT_CHARGING,CHARGE_STATE_FASTCHARGE) bq->charge_state=CHARGE_STATE_FASTCHARGE; power_supply_changed(&bq->batt_psy);
利用dumpsys分析当前battery状态
V2_PRO:/#dumpsysbattery CurrentBatteryServicestate: ACpowered:false USBpowered:true Wirelesspowered:false Maxchargingcurrent:0 Maxchargingvoltage:0 Chargecounter:0 status:2 health:2 present:true level:46 scale:100 voltage:7 temperature:270 technology:Li-ion
如上主要关注2个字段:
USBpowered:true
那么闪电图标应该会出现
status:2
那么充电动画应该启动了
同时我们还可以通过shell指令的方式启动充电图标和充电动画
dumpsysbatterysetusb1
闪电图标应该会出现
dumpsysbatterysetstatus2
充电动画应该启动了
dumpsysbatterysetusb0
闪电图标消失
dumpsysbatterysetstatus4
充电动画消失
总结
以上所述是小编给大家介绍的Android开机充电图标和充电动画效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。