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 */)
{
...