흔들어 봐(중력 감지)
하나 구해서 핸드폰에 넣었는데 운행하자마자 계속 진동을 해서 오랫동안 몰랐어요.
나중에 SDK 문서를 보러 갔는데 가장 큰 문제가 하나 있었어요. 제 핸드폰의 터치값은 다른 핸드폰과 달라요.
위 코드:
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.widget.TextView;
public class MainActivity extends Activity implements SensorEventListener
{
// Sensor
private SensorManager mSensorManager = null;
//
private Vibrator mVibrator = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
}
public void onAccuracyChanged(Sensor arg0, int arg1)
{
}
public void onSensorChanged(SensorEvent arg0)
{
int sensorType = arg0.sensor.getType();
float[] values = arg0.values;
// 19, 14
//
// arg0.sensor.getMaximumRange()
TextView textView2 = (TextView) findViewById(R.id.textView2);
textView2.setText(" " + arg0.sensor.getMaximumRange());
if (sensorType == Sensor.TYPE_ACCELEROMETER)
{
if (Math.abs(values[0]) > 19 || Math.abs(values[1]) > 19 || Math.abs(values[2]) > 19)
{
mVibrator.vibrate(100);
TextView tv1 = (TextView) findViewById(R.id.textView1);
tv1.setText(" , ...");
}
}
}
@Override
protected void onResume()
{
super.onResume();
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onStop()
{
mSensorManager.unregisterListener(this);
super.onStop();
}
@Override
protected void onPause()
{
mSensorManager.unregisterListener(this);
super.onPause();
}
}
activity_main.xml에 TextView 2개
나랑 같은 문제에 도움이 됐으면 좋겠어.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
표준 Gsensor 관련 수정, 중력감응 게임으로 태블릿에서 모두 가능왜 어떤 중력감응 게임은 할 수 없고 어떤 게임은 할 수 있는지 주요 원인은 프레임워크가 데이터 처리에 대해 하나의 표준만 있기 때문이다. 반면에 휴대전화와 태블릿PC는 이 방면에서 차이가 있다. 일반적인 게임은 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.