Orientation感測器
方向感測器
sensor = sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sm.registerListener(oriSensor, sensor, SensorManager.SENSOR_DELAY_NORMAL);
// Azimuth : 0=North, 90=East, 180=South, 270=West private SensorEventListener oriSensor = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
txtMsg.setText(
"(Azimuth, Pitch, Roll) = \n" + event.values[0] + "\n" + event.values[1] + "\n" + event.values[2]);
}
};
2011年5月25日 星期三
Gyroscope感測器
Gyroscope感測器
陀螺儀感測器
sensor = sm.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
sm.registerListener(gyroSensor, sensor, SensorManager.SENSOR_DELAY_NORMAL);
private SensorEventListener gyroSensor = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
txtMsg.setText("(x, y, z) = \n" + event.values[0] + "\n" + event.values[1] + "\n" + event.values[2]);
}
};
陀螺儀感測器
sensor = sm.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
sm.registerListener(gyroSensor, sensor, SensorManager.SENSOR_DELAY_NORMAL);
private SensorEventListener gyroSensor = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
txtMsg.setText("(x, y, z) = \n" + event.values[0] + "\n" + event.values[1] + "\n" + event.values[2]);
}
};
2011年4月20日 星期三
Light感測器
Light感測器
public void onCreate(Bundle savedInstanceState) {
................
// get reference to SensorManager
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT);
sm.registerListener(lsn, sensor, SensorManager.SENSOR_LIGHT);
}
SensorEventListener lsn = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
// light sensor informations
cloudy.setText(String.valueOf(SensorManager.LIGHT_CLOUDY));
fullmoon.setText(String.valueOf(SensorManager.LIGHT_FULLMOON));
no_moon.setText(String.valueOf(SensorManager.LIGHT_NO_MOON));
overcast.setText(String.valueOf(SensorManager.LIGHT_OVERCAST));
shade.setText(String.valueOf(SensorManager.LIGHT_SHADE));
sunlight.setText(String.valueOf(SensorManager.LIGHT_SUNLIGHT));
sunlight_max.setText(String.valueOf(SensorManager.LIGHT_SUNLIGHT_MAX));
sunrise.setText(String.valueOf(SensorManager.LIGHT_SUNRISE));
// light sensor values
txtMsg.setText("Ambient light level = " + event.values[0] + " lux");
}
};
public void onCreate(Bundle savedInstanceState) {
................
// get reference to SensorManager
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT);
sm.registerListener(lsn, sensor, SensorManager.SENSOR_LIGHT);
}
SensorEventListener lsn = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
// light sensor informations
cloudy.setText(String.valueOf(SensorManager.LIGHT_CLOUDY));
fullmoon.setText(String.valueOf(SensorManager.LIGHT_FULLMOON));
no_moon.setText(String.valueOf(SensorManager.LIGHT_NO_MOON));
overcast.setText(String.valueOf(SensorManager.LIGHT_OVERCAST));
shade.setText(String.valueOf(SensorManager.LIGHT_SHADE));
sunlight.setText(String.valueOf(SensorManager.LIGHT_SUNLIGHT));
sunlight_max.setText(String.valueOf(SensorManager.LIGHT_SUNLIGHT_MAX));
sunrise.setText(String.valueOf(SensorManager.LIGHT_SUNRISE));
// light sensor values
txtMsg.setText("Ambient light level = " + event.values[0] + " lux");
}
};
2011年4月18日 星期一
OnTouchEvent偵測
OnTouchEvent偵測
透過下列程式,可偵測Touch的動作
MotionEvent.ACTION_DOWN:壓下時觸發
MotionEvent.ACTION_MOVE:移動時觸發
MotionEvent.ACTION_UP:離開時觸發
public boolean onTouchEvent(MotionEvent event){
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN :
temp_x = (int) event.getX();
temp_y = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE :
break;
case MotionEvent.ACTION_UP :
break;
default :
break;
}
return false;
}
* event.getPointerCount() get count number
透過下列程式,可偵測Touch的動作
MotionEvent.ACTION_DOWN:壓下時觸發
MotionEvent.ACTION_MOVE:移動時觸發
MotionEvent.ACTION_UP:離開時觸發
public boolean onTouchEvent(MotionEvent event){
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN :
temp_x = (int) event.getX();
temp_y = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE :
break;
case MotionEvent.ACTION_UP :
break;
default :
break;
}
return false;
}
* event.getPointerCount() get count number
Accelerometer感測器
Accelerometer感測器
加速度感測器,主要運用於感應手機的運動
values[0]:空間座標中X軸方向上的加速度減去重力加速度在X軸的分量。
values[1]:空間座標中Y軸方向上的加速度減去重力加速度在Y軸的分量。
values[2]:空間座標中Z軸方向上的加速度減去重力加速度在Z軸的分量。
// 設定感測器
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sm.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_NORMAL);
// 接收感測器資訊
SensorEventListener lsn = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
gsensor_info.setText(
"(x,y,z) = (" + event.values[0] + "," + event.values[1] + "," + event.values[2] + ")");
}
};
加速度感測器,主要運用於感應手機的運動
values[0]:空間座標中X軸方向上的加速度減去重力加速度在X軸的分量。
values[1]:空間座標中Y軸方向上的加速度減去重力加速度在Y軸的分量。
values[2]:空間座標中Z軸方向上的加速度減去重力加速度在Z軸的分量。
// 設定感測器
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sm.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_NORMAL);
// 接收感測器資訊
SensorEventListener lsn = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void onSensorChanged(SensorEvent event) {
gsensor_info.setText(
"(x,y,z) = (" + event.values[0] + "," + event.values[1] + "," + event.values[2] + ")");
}
};
訂閱:
文章 (Atom)