質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2511閲覧

自動でタッチイベントを生成

murasame

総合スコア7

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/11/14 09:46

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(); }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

View#dispatchTouchEventを使ってみてください。

・コードはコード用の記述法をつかってください。
・コードをただ載せるだけでなく、どの程度まで実装したのかを具体的に書いてください。説明があるかないかでコードを読む時間はかなり変わります。

投稿2016/11/14 11:51

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問