首先驱动需要先获取到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;

}

充电的闪电图标和充电动画启动逻辑

闪电图标启动逻辑: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);

利用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

充电动画消失

总结

以上所述是小编给大家介绍的android 开机充电图标和充电动画效果,希望对大家有所帮助

android电池充电动画,Android 开机充电图标和充电动画效果相关推荐

  1. android 系统(34)--关机充电图标修改

    关机充电图标修改 关机充电图标修改 关机充电main函数 函数set_draw_anim_mode 函数pthread_mutex_init 函数bootlogo_init 函数alarm_contr ...

  2. android+p开机动画,Android开机动画bootanimation.zip文件制作以及注意事项

    PS:红色字体需要特别注意 刚刚将原生Android系统开机logo和开机动画做了调整,为此耗费了接近半天的时间,碰到了很多问题,幸好最终达成了目的. 一,首先说一下bootanimation.zip ...

  3. android 9.0关机充电流程,充电图标和电量显示百分比修改

    android 9.0关机充电图标和字体修改 相关源文件 电量显示百分比字体替换 充电图标替换 相关源文件 system/core/healthd/healthd_draw.cppsystem/cor ...

  4. android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...

  5. 高通android充电常用问题,高通平台android9.0充电电量,充电指示灯以及充电图标读取分析...

    第一部分     qpnq-qg.c static int qpnp_qg_probe(struct platform_device *pdev) { ....... INIT_WORK(&c ...

  6. Android系统自定义关机充电图标

    需求描述 关机充电图标的修改地址在哪里?替换照片有哪些格式要求? 实现方案 图片路径: system/core/healthd/images/ 关机充电: system/core/healthd/he ...

  7. MTK平台修改Android动画,Android MTK平台修改开关机动画和开机logo

    转载请注明出处:http://blog.csdn.net/u011479494/article/details/50682089 一.修改开机logo 由于我的机器分辨率为540*960 替换:med ...

  8. android 水滴动画,Android动画探索——图标依次变大的水滴效果

    一直打算模仿ios,做一个安卓的水滴效果:比如有四个图标,四个图标依次出现,并由小变大.就像水滴掉落时一头大一头小一样. 首先分析需求: 1. 四个图标由小变大,那么是图标ScaleX和ScaleY两 ...

  9. Android MTK平台修改开关机动画和开机logo

    转载请注明出处:http://blog.csdn.net/u011479494/article/details/50682089 一.修改开机logo 由于我的机器分辨率为540*960 替换:med ...

最新文章

  1. Mysql CPU占用高的问题解决方法小结
  2. HihoCoder - 1558
  3. SpringCloud微服务:阿里开源组件Nacos,服务和配置管理
  4. 漫步数学分析十六——紧集与连集的像
  5. java编程思想3感悟(4)---被隐藏的具体实现
  6. cesium添加填充_cesium编程中级(四)使用渐变纹理
  7. windows2003与文件共享有关的几个进程
  8. C/C++[codeup 2026]日期类
  9. 基于java springboot框架的电子发票管理系统
  10. VS Code Python “Statements must be separated by newlines or semicolons“
  11. 老梁说天下——慈善的红与黑
  12. Linux下查看dd命令执行进度
  13. 输入一个数字n,输出一个n层的特定三角形
  14. 测量角速度_自动驾驶系统的定海神针—惯性测量单元
  15. 11.7亿、苹果仅20%、1/4的时间看短视频...关于互联网,你必须知道的几个数字......
  16. Qt中sender()函数的用法
  17. L1-012 计算指数 (5 分) C语言
  18. mysql中何时需要引号,何时在MySQL中使用单引号,双引号和反勾号
  19. 列举5种以上表单元素中input的type类型
  20. Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)

热门文章

  1. C语言为四维数组申请动态内存空间的方法(一)
  2. 高吞吐低时延日志系统需要注意的方面
  3. struct seq_file
  4. pl sql入门比较好的书_面试官问你SQL?这几本书足够了
  5. rust怎么调整夜晚亮度_买手机时LCD屏和OLED屏怎么选?终于明白了!
  6. python真是最烂的语言_在大型项目上,Python 是个烂语言吗?
  7. pytorch线性回归(笔记一)
  8. mysql源码目录在哪_Mysql源码学习——源码目录结构
  9. android 自定义组合键,自定义快捷操作 安卓虚拟Home键设置技巧
  10. [专栏精选]TextMeshPro插件