Android 开机充电图标和充电动画

  1. 首先驱动需要先获取到2个power supply

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");

static int bq2570x_psy_register(struct bq2570x *bq)
{
    int ret;

    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("failed to register batt_psy:%d\n", ret);
        return ret;
    }

    return 0;
}
  1. 充电的闪电图标和充电动画启动逻辑

闪电图标启动逻辑:POWER_SUPPLY_TYPE_USB的power supply上报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的power supply上报充电状态(CHARGE_STATE_NOT_CHARGING,CHARGE_STATE_FASTCHARGE)

bq->charge_state = CHARGE_STATE_FASTCHARGE;
power_supply_changed(&bq->batt_psy);
  1. 利用dumpsys分析当前battery 状态
V2_PRO:/ # dumpsys battery
Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  Max charging current: 0
  Max charging voltage: 0
  Charge counter: 0
  status: 2
  health: 2
  present: true
  level: 46
  scale: 100
  voltage: 7
  temperature: 270
  technology: Li-ion

如上主要关注2个字段:

USB powered : true

那么闪电图标应该会出现

status: 2
那么充电动画应该启动了

同时我们还可以通过shell指令的方式启动充电图标和充电动画

dumpsys battery set usb 1

闪电图标应该会出现

dumpsys battery set status 2

充电动画应该启动了

dumpsys battery set usb 0

闪电图标消失

dumpsys battery set status 4

充电动画消失

原文地址:https://www.cnblogs.com/linhaostudy/p/12070910.html

时间: 2024-11-01 07:19:24

Android 开机充电图标和充电动画的相关文章

android的充电图标显示

最近RK3026的项目需要修改开机充电,才分析了Android原生态的充电过程. 充电的代码和图标在system/core/charger中,会编译成名字为charger的可执行文件,打包进ramdisk中,在init.rc中脚本启动: [java] view plain copy on charger setprop ro.boot.charger.emmc 0 export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbi

android 电池(二):android关机充电流程、充电画面显示【转】

本文转载自:http://blog.csdn.net/xubin341719/article/details/8498580 上一篇我们讲了锂电池的充放电的流程和电池的一些特性,这一节我们重点说一下android关机充电是怎么.充电画面显示是怎么实现的,这个在工作中也比较有用,我们开始做这一块的时候也走了不少的弯路.我记得我们做adnroid2.3的时候,关机状态和充电logo显示是在uboot中做的.应该是有两种做法,回头我再看下uboot中做画面显示那一块是怎么做的,这一节我们重点说系统中的

[转]android logo:内核、android开机动画

平台信息:内核:linux2.6/linux3.0系统:android/android平台:S5PV310(samsungexynos4210/4412) 作者:xubin341719(欢迎转载,请注明作者) android开logo,这一块在工作改动的也是比较多的,也比较简单,不同的公司,不同型号的产品,开机的标识不一样. 我们平时目测的开机logo一般是两种:静态的和动画的.其实在实现logo的过程中,有四幅图片:(1).uboot显示:(2).kernel显示logo_linux_clut

android logo:内核、android开机动画【转】

本文转载自: 关键词:Android 开机logo  开机动画 initlogo.rle   bootanimation  desc.txt 平台信息:内核:linux2.6/linux3.0系统:android/android平台:S5PV310(samsungexynos4210/4412) 作者:xubin341719(欢迎转载,请注明作者) android开logo,这一块在工作改动的也是比较多的,也比较简单,不同的公司,不同型号的产品,开机的标识不一样. 我们平时目测的开机logo一般

android logo、android开机动画改变详解

android logo:内核.android开机动画 android开logo,这一块在工作改动的也是比较多的,也比较简单,不同的公司,不同型号的产品,开机的标识不一样. 我们平时目测的开机logo一般是两种:静态的和动画的.其实在实现logo的过程中,有四幅图片:(1).uboot显示:(2).kernel显示logo_linux_clut244.ppm:(3).android第一幅intilogo.rle:(4).android第二幅,bootanimation.前三幅一般我们做成相同的,

Android开机动画 (boot animation)制作

前言 Rom Porting第一部可能就是开机动画的移植,这个移植过程还是相当简单的,简要介绍一下Android 开机动画的制作. Boot Animation Android系统自android 2.0以后,均使用/system/bin/bootanimation程序来显示开机动画,如需要修改开机动画,不用修改代码,只需要按格式要求制作bootanimation.zip包即可.zip存放路径为/system/media/目录下,或者/data/local/目录下.如果两个目录都存在时,优先使用

Android开机logo修改方法 【转】

本文转载自:http://blog.csdn.net/qq258711519/article/details/7766303 一体机平台开机logo修改方法 1:修改Kernel中的Logo: 若是要替换Kernel中的开机Logo,只需要把内核目录drivers/video/logo下的logo_android_1024_clut224.ppm文件替换掉即可(注意要保持名字一样,在IMT的SDK里没有这个ppm,默认选择了Standard 224-color Linux logo).然后从新编

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

Android 开机启动问题

问题描述 如果Android 开机广播没有android.permission.RECEIVE_BOOT_COMPLETED权限,如果如何做到开机启动,老板说android.permission.RECEIVE_BOOT_COMPLETED上不了市场,大婶们,求带啊. 解决方案1 怎么可能上不了市场, 无论 google 还是哪里,开机启动的应用这么多, qq,taobao哪个不是开机启动 解决方案2 你可以选择监听其他的开机后一定会执行的广播,比如加载SDCard完毕的系统广播!