アプリでこの pushtotalk ボタンを押すと、キーボード ボタンがスレッド内で 9、*、# などと押され、ボタンを一時的に無効にするプレス間の遅延があります。ただし、このボタンを使い始めてから、電話が再起動することがありますが、その理由は何ですか? スレッドを正しく処理していませんか?
public void pushtotalk2(final View view) {
final boolean on = ((ToggleButton) view).isChecked();
((ToggleButton) view).setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
if (on) {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_NUMPAD_MULTIPLY);
Thread.sleep(500);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_9);
Thread.sleep(500);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_blue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
} else {
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_POUND);
Thread.sleep(500);
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_9);
Thread.sleep(500);
runOnUiThread(new Runnable() {
public void run() {
((ToggleButton) view).setBackgroundResource(R.drawable.btn_lightblue_glossy);
((ToggleButton) view).setEnabled(true);
}
});
}
} catch (InterruptedException e) {
Log.d(TAG, "Failed to send keycodes: " + e.getMessage());
}
}
}).start();
}
ここで何か問題がありますか?