Android用のカメラAPIを作成しました。それはうまくいきます。現在、加速度計の読み取り値が 2.0 を超える場合 (Gforce > 2.0) を自動的にオンにしようとしています。力を測定するアクティビティも作成しました。しかし、その部分は機能していません。(加速度計部分を個別に確認すると正常に動作しますが、カメラプロジェクトに追加すると動作しません)これを修正するにはどうすればよいですか。以下のリンクを参考にカメラを作ってみました。 http://marakana.com/forums/android/examples/39.html
そして、以下は加速度計の私のコードです
package com.example;
import java.text.DecimalFormat;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class Measure extends Activity{
SensorManager sensorManager;
TextView current;
private double currentAccel= 0.0f;
private static DecimalFormat REAL_FORMATTER = new DecimalFormat("0.####");
private final SensorEventListener sensorEvent = new SensorEventListener(){
double calibration = SensorManager.STANDARD_GRAVITY;
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
double x = event.values[0];
double y = event.values[1];
double z = event.values[2];
double a = Math.round(Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)));
currentAccel = ((float)(a-calibration));
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
current = (TextView)findViewById(R.id.current);
current.setTextSize(1, 30);
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
Sensor accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(sensorEvent, accelerometer, SensorManager.SENSOR_DELAY_FASTEST);
Timer updateTimer = new Timer("gForceUpdate");
updateTimer.scheduleAtFixedRate(new TimerTask(){
public void run() {
updateGUI();
}
}, 0, 50);
}
private void updateGUI(){
runOnUiThread(new Runnable(){
@Override
public void run() {
double currentG = currentAccel / SensorManager.STANDARD_GRAVITY ;
current.setText(REAL_FORMATTER.format(currentG));
/* if(currentG>2.3){
CameraDemo obj = new CameraDemo();
String acl=Double.toString((Double)currentG);
String result=obj.sendAccelerationData(acl);
}
*/
}
});
}
}