В Android Java, как поймать долгое нажатие на кнопку вызова устройства Bluetooth? - PullRequest
2 голосов
/ 17 октября 2011

Как поймать (перехватить) долгое нажатие кнопки вызова устройства Bluetooth (андроид)?

Ответы [ 2 ]

6 голосов
/ 18 декабря 2011

Вы ищете это android.intent.action.VOICE_COMMAND, и это намерение деятельности, а не намерение получателя. Вам необходимо следующее в вашем манифесте:

<activity android:name="LongPressActivity">
    <intent-filter>
        <action android:name="android.intent.action.VOICE_COMMAND"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Проблема возникает, когда ваша деятельность начинается. Большинство API-интерфейсов, используемых в приложении «Голосовые команды», являются скрытыми, поэтому для доступа к ним вам нужно прыгать через горячие кольца. Либо используйте отражение, либо посмотрите эту серию статей .

2 голосов
/ 17 октября 2011

Вы имеете в виду действие Intent.ACTION_CALL_BUTTON, но чем для долгого нажатия?Этого не существует, Android предлагает только ограниченное количество стандартных действий, и длительное нажатие на физические кнопки не включено.

Хотя, если это возможно, когда ваша собственная деятельность открыта, переопределив метод onKeyLongPressв вашем классе деятельности.

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_CALL) {
        // do your stuff here
        return true;
    }
    return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...