以下是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); // 打开呼吸灯
这样子获取系统服务,然后调用其函数,这样就安全了。