Android按键灯步骤分析
发布时间:2021-12-13 11:17:53 所属栏目:教程 来源:互联网
导读:调用代码为: alpsframeworksbaseservicesjavacomAndroidserverLightsService.java 使用方法: private LightsService.Light mButtonLight; mButtonLight = mLightsService.getLight(LightsService.LIGHT_ID_BUTTONS); mButtonLight.setBrightness(s
调用代码为: alpsframeworksbaseservicesjavacomAndroidserverLightsService.java 使用方法: private LightsService.Light mButtonLight; mButtonLight = mLightsService.getLight(LightsService.LIGHT_ID_BUTTONS); mButtonLight.setBrightness(screenBrightness); mButtonLight.turnOff(); 本地代码在: alpsframeworksbaseservicesjnicom_android_server_LightsService.cpp 接口关联使用: static JNINativeMethod method_table[] = { { "init_native", "()I", (void*)init_native }, { "finalize_native", "(I)V", (void*)finalize_native }, { "setLight_native", "(IIIIIII)V", (void*)setLight_native }, }; int register_android_server_LightsService(JNIEnv *env) { return jniRegisterNativeMethods(env, "com/android/server/LightsService", method_table, NELEM(method_table)); } register_android_server_LightsService函数在alpsframeworksbaseservicesjnionload.cpp里面注册 本地c代码在: alpsmediatekhardwareliblightslights.c里面open_lights里面 static int set_light_buttons(struct light_device_t* dev, struct light_state_t const* state) { int err = 0; int on = is_lit(state); pthread_mutex_lock(&g_lock); g_buttons = on; err = write_int(BUTTON_FILE, on?255:0); pthread_mutex_unlock(&g_lock); return err; } com_android_server_LightsService.cp里面使用 devices->lights[light]->set_light(devices->lights[light], &state);来调用真正的代码 如果有root机子,可以如下测试: echo 0 > /sys/class/leds/button-backlight/brightness 关按键灯 echo 1 > /sys/class/leds/button-backlight/brightness 开按键灯 echo 0 > /sys/class/leds/button-backlight/brightness 执行的意思为:输出0,作为/sys/class/leds/button-backlight/brightness的输入传入。 如此便会打开brightness设备,并执行write将0带入执行。 ![]() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |