微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MTK平台在Android应用层操作lcd-backlight文件失败--求助

MTK平台在Android应用层操作lcd-backlight文件失败--求助

时间:10-02 整理:3721RD 点击:
查看了背光部分的底层代码,发现之前的配置时使用了GPIO脉冲方式,咋折腾了半天修改为PWM方式调节背光亮度无果之后,决定在应用层关闭背光(闲时)。但是又出现了问题:在应用层操作LCD-backlight的brightness代码是这样的:

  1. private void powerOnOrOffLcdBacklight(boolean on){
  2. //Toast.makeText(MainActivity.this, "lcd-backlight", 1000).show();
  3.                 try {
  4.                         FileOutputStream fos = new FileOutputStream(
  5.                                         "sys/class/leds/lcd-backlight/brightness");
  6.                         if (on)
  7.                                 fos.write('1');
  8.                         else
  9.                                 fos.write('0');
  10.                         fos.close();

  11.                 } catch (IOException e) {
  12.                         e.printStackTrace();
  13.                 }
  14.         }

复制代码

但是调试后发现还是没有将背光关闭,跟着追踪发现在写“1”的时候根本没成功,这段代码直接走catch()部分了,我又尝试了adb cd sys/class/leds/lcd-backlight,这样进去修改背光的值 即:echo 0 > brightness 或者echo 1 > brightness 这样的话,是能够关闭或者打开lcd屏幕的背光的呀!看了底层代码,发现配置的led、button以及lcd的背光都是同一个配置文件,然后就把这几个也用同样的方式试了一下,结果在应用层也能够写入文件的brightness值的,具体方法的代码为:
        private void setBlueled(boolean on) {
                try {
                        FileOutputStream fos = new FileOutputStream(
                                        "sys/class/leds/blue/brightness");
                        if (on)
                                fos.write('1');
                        else
                                fos.write('0');
                        fos.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
这完全和写lcd-backlight的方式一样啊,这是为什么呢?难道应用层修改lcd背光值是要什么权限的吗?还是说底层 led是采用 ISINK方式,而lcd采用了GPIO脉冲的方式?
请教各位,是什么原因导致的呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top