Android - запустить приложение с кнопки HW

Мне нужно привязать какую-то HW кнопку телефона для запуска моего приложения.
Это нужно сделать из кода приложения или при его установке.
Возможно ли это в Android?


person Costa Mirkin    schedule 01.03.2012    source источник
comment
Ваш вопрос очень неясен...   -  person Samir Mangroliya    schedule 01.03.2012
comment


Ответы (3)


Вы не можете привязать приложение к клавише, например, создать сочетания клавиш в настольных приложениях.

Если ваше приложение не запущено, то единственный способ, которым его можно вызвать, кроме ручного нажатия на значок запуска, - только с помощью широковещательных приемников. Но в Android не транслируется нажатие клавиши.

Один из способов добиться этого — запустить службу на переднем плане, которая отслеживает нажатия клавиш и может инициировать ваше приложение при нажатии определенной комбинации клавиш. Но не рекомендуется, потому что пользователю это может не понравиться.

person Sadeshkumar Periyasamy    schedule 01.03.2012
comment
Привет. Как я могу отслеживать нажатия клавиш в службах? - person Costa Mirkin; 04.03.2012

Объявите это в файле manifest.xml

<activity android:name=".youractivity">
   <intent-filter >    
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.MONKEY" />
  </intent-filter >  
</activity>
person Sai mukesh    schedule 01.03.2012

Нет, вы не можете этого сделать, насколько я знаю, и, что более важно, даже если бы вы могли, вы не должны — это было бы ужасно UX. Пользователь ожидает, что аппаратные кнопки будут выполнять определенную функцию, переопределение которой звучит как очень плохая идея.

Представьте, если бы любое приложение, которое вы установили, могло бы просто изменить действие кнопки «Домой»…

person Alex Florescu    schedule 01.03.2012