闪光灯和呼吸灯亮灭的控制

以下是android5.1 和6.0的一种闪光灯/呼吸灯的打开/关闭的方法,原理很简单,直接往文件里面写入数据。

1,闪光灯的打开/关闭   5.1 和6.0 都适用

闪光灯亮度值存放路径如下:

private String FLASHLIGHT_NODE = "/sys/class/leds/flashlight/brightness";


  打开/关闭所对应的ASCII码值

  final byte[] LIGHTE_ON = { '1', '2', '7' }; // 字符127的ASCII码值
    final byte[] LIGHTE_OFF = { '0' }; //字符0的ASCII码值


  打开闪光灯

 FileOutputStream flashlight;
	            try { 
	                flashlight = new FileOutputStream(FLASHLIGHT_NODE);
	                flashlight.write(LIGHTE_ON);
	                flashlight.close(); 
	            } catch (Exception e) { 
	            }


  关闭闪光灯

  FileOutputStream flashlight;
        try { 
            flashlight = new FileOutputStream(FLASHLIGHT_NODE);
            flashlight.write(LIGHTE_OFF);
            flashlight.close(); 
        } catch (Exception e) {
        }


   2,呼吸灯  5.1 代码如下

   

呼吸灯亮度值存放路径如下:

private static final String BLUE_BRIGHTNESS = "/sys/class/leds/blue/brightness";


  打开/关闭所对应的ASCII码值

    final byte[] ON  = { '1' }; // 字符127的ASCII码值
    final byte[] OFF = { '0' }; //字符0的ASCII码值


  打开呼吸灯

FileOutputStream fileOutputStream1;
        try {
            fileOutputStream1 = new FileOutputStream(BLUE_BRIGHTNESS);
            fileOutputStream1.write(ON);
            fileOutputStream1.close(); 
        } catch (Exception e) {
        }   


 

关闭呼吸灯

 FileOutputStream fileOutputStream;
        try {
            fileOutputStream = new FileOutputStream(BLUE_BRIGHTNESS);
            fileOutputStream.write(OFF);
            fileOutputStream.close(); 
        } catch (Exception e) {
        }


 

最后不要忘记了,因为是往文件中直接写入值,所以需要系统权限,虽然这样很不安全。

 

3,呼吸灯  6.0 代码如下

 

首先获取PowerManager管理类,

private  IPowerManager mPower;
mPower = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));

mPower.SetBreathOrNotificationLight(false); // 关闭呼吸灯
mPower.SetBreathOrNotificationLight(true);  // 打开呼吸灯


这样子获取系统服务,然后调用其函数,这样就安全了。

 

 

你可能感兴趣的:(---【实践】)