特定のミドルウェア(重要ではありません)を使用して、AndroidでTV-RemoteSimulatorアプリを開発しています。
ボリュームボタン(ボリューム+とボリューム-)の場合、私がやろうとしているのは、ボタンが押されている間、「ボリュームアップ」信号を繰り返し送信することです。
それが私が最後に試したものです(ボタンの1つのコード、他のボタンは名前を除いて同一でなければなりません):
ブール変数を宣言しました
boolean pressedUp = false;
次のAsyncTaskで内部クラスを宣言しました。
class SendVolumeUpTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { while(pressedUp) { SendVolumeUpSignal(); } return null; }
}
ボタンにリスナーを追加します。
final Button buttonVolumeUp = (Button) findViewById(R.id.volup); buttonVolumeUp.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if(pressedUp == false){ pressedUp = true; new SendVolumeUpTask().execute(); } case MotionEvent.ACTION_UP: pressedUp = false; } return true; } });
また、ボタンが押されている間にインクリメント-デクリメントカウンターのように単純なスレッドで試しましたが、どちらも機能しませんでした。アプリケーションは残りのボタン(チャンネルなど)で正常に動作しますが、音量の変更は完全に無視されます。