package com.along.breathleds;
import android.app.Activity;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;
import android.os.IBreathLedsService;
public class BreathLedsActivity extends Activity {
private IBreathLedsService ledSvc = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.breath_leds);
ledSvc = IBreathLedsService.Stub.asInterface(ServiceManager.getService("breath_leds"));
SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "level = "+progress, Toast.LENGTH_SHORT).show();
for (int i=1; i<12; i++) {
try {
ledSvc.setLedsBrightness(i, progress);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
});
}
}
本demo整个界面就只有一个SeekBar控件,类似于调屏幕亮度一样,用来调整led灯的亮度。其中xml中SeekBar控件描述如下:
<SeekBar android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:max="31"
android:progress="31"/>
放在eclipse中编译时记得导入新编译的系统framework对应jar包。打开生成的apk应用,可发现led亮度随着SeekBar的拖动而变亮变暗。