-
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的拖动而变亮变暗。