LightsService分析 --- 问题分析

本文深入分析了在Android系统中添加和控制自定义LED灯的过程,包括在LightsService中添加逻辑ID,通过JNI注册设备,设定逻辑处理函数以及添加权限。此外,还探讨了如何通过一个上层ID控制多个物理LED灯的实现策略,主要在HAL层的set_light函数中根据颜色值或闪烁参数区分操作不同的物理灯。
摘要由CSDN通过智能技术生成

5 重点问题解析

5.1 添加一个自定义的灯

前面从Java应用层一直到硬件抽象层的分析,都是Android系统中标准的硬件控制流程,在了解了这个流程后,

开发人员就可以根据这个流程来添加制定自己的硬件控制了。下面将分步骤来介绍如何添加一个自定义的灯,以控制一个4G信号强弱的灯led_lte为例。

步骤 1 添加逻辑ID值

首先需要在LightsManager中添加所要灯的ID号,这个ID号应该与前面的ID号保持连续:

public static final int LIGHT_ID_LED_LTE = 8;

需要在com_android_server_lights_LightsService.cpp中添加与上层对应的ID:

enum {
    ...
    LIGHT_INDEX_LED_LTE = 8,
...
LIGHT_COUNT = 11
};

在light.h中添加与前面的灯ID对应的灯的名称,用于在注册时进行绑定:

#define LIGHT_ID_LED_LTE            "led_lte"

步骤 2 注册灯设备

完成前面灯设备ID的添加后,通过JNI调用来为设备分配空间,完成注册。

static jlong init_native(JNIEnv* /* env */, jobject /* clazz */)
{
    ...
 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值