Androidのアプリ開発についてで、近接センサーで認識したときタッチイベントを生成したいのですがどうしてもできません。どんな説明でも良いのでご教示ください。
汚いコードですが貼っておきます。
public class MainActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager; private static final int REQUEST_CODE = 1000; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Switch proximitySwitch = (Switch) findViewById(R.id.proximitySwitch); // スイッチのON・OFF proximitySwitch .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { // センサーを登録 registSensor(); } else { // センサーを解除 unregistSensor(); } } }); } @Override protected void onDestroy() { // センサーを解除 unregistSensor(); super.onDestroy(); } /** * 近接センサーを登録. */ private void registSensor() { if (mSensorManager == null) { mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); mSensorManager.registerListener((SensorEventListener) this, mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY), SensorManager.SENSOR_DELAY_UI); } } /** * 近接センサーを解除 */ private void unregistSensor() { if (mSensorManager != null) { mSensorManager.unregisterListener(this); mSensorManager = null; } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event ) { // 近接度センサーの値を取得 if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) { if (event.values[0] == 0) { toch(); } else { Toast.makeText(this, "センサーに手を近づけてください", Toast.LENGTH_SHORT).show(); } } } private void toch(){ MotionEvent event1 = MotionEvent.obtain (SystemClock.uptimeMillis(), SystemClock.uptimeMillis() + 100, MotionEvent.ACTION_DOWN, 750, 1250, 0); this.onTouchEvent(event1); } public void on(View view) { Toast.makeText(this, "認識をしました。", Toast.LENGTH_SHORT).show(); }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。