详解Android应用层制作LED指示灯
详解Android应用层制作LED指示灯
在Java应用层修改LED指示灯的颜色,这个花了我半天时间,才实现该功能!
publicclassLEDActivityextendsActivityimplementsView.OnClickListener{
privatestaticfinalStringTAG="LED";
ButtonmLedTest;
intmLedStatus=0;
privatefinalintmLedColorRed=0xFFFF0000;
finalbyte[]LIGHT_ON={'2','5','5'};
finalbyte[]LIGHT_OFF={'0'};
privatefinalintRED=0;
privateintcolor=RED;
StringRED_LED_DEV="/sys/class/leds/torch/brightness";
publicvoidonCreate(BundleparamBundle){
super.onCreate(paramBundle);
setContentView(R.layout.led_test);
mLedTest=((Button)findViewById(R.id.ledcolor));
mLedTest.setOnClickListener(this);
//setledlightcolor(color);
//mLedTest.setTextColor(mLedColorRed);
//mLedTest.setText("RED");
//mLedStatus=1;
}
publicvoidonClick(Viewv){
Log.d("LEDActivity","---onClick---mLedStatus="+mLedStatus);
switch(v.getId()){
caseR.id.ledcolor:
if(mLedStatus==0){
mLedTest.setText("开");
mLedStatus=1
}elseif(mLedStatus==1){
mLedTest.setText("关");
mLedStatus=0;
}
break;
}
}
@Override
publicvoidfinish(){
setledlightcolor(-1);
super.finish();
}
privatevoidsetledlightcolor(intcolor){
logd("set:"+color);
booleanred=false;
switch(color){
caseRED:
red=true;
break;
default:
break;
}
try{
FileOutputStreamfoRed=newFileOutputStream(RED_LED_DEV);
Log.d(TAG,"foRed"+foRed);
fRed.write(red?LIGHT_ON:LIGHT_OFF);
fRed.close();
}catch(Exceptione){
loge(e);
}
}
voidlogd(Objectd){
Log.d(TAG,""+d);
}
voidloge(Objecte){
Log.e(TAG,""+e);
}
}
直接在xml中写一个Button,用来实现点击按钮,其实很简单,只是把源码的led指示灯的路径拿出来,用过输出流,将String转化,就能读出灯的状态,直接运行就可以实现该功能.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!