Как перехватить центральную кнопку -- android пол Связанный проблема

How to intercept a center-button press


2
vote

проблема

русский

У меня есть приложение, в котором важно, чтобы я выполнял какой-код, когда пользователь нажимает центральную кнопку на устройстве Android. Я уже обрабатываю пользователя, нажав правую кнопку рук (кнопку «Назад) через <код> onKeyDown(int keyCode, KeyEvent event) / if (keyCode == KeyEvent.KEYCODE_BACK) , поэтому я предположил, что нажатие центральной кнопки будет обрабатываться аналогичным образом. Но после дальнейшего расследования кажется, что OnkeyDown не вызывается. Так что мой вопрос; Как мне перехватить центральную кнопку?

P.S. Многое к моему смущению, я даже не уверен, что называется центральная кнопка!

Английский оригинал

I have an app in which it is essential that I execute some code when the user presses the centre button on an android device. I already process the user pressing the right hand button (the back button) via onKeyDown(int keyCode, KeyEvent event) / if (keyCode == KeyEvent.KEYCODE_BACK) so I had assumed that pressing the centre button would be processed in a similar manner. But upon further investigation, it appears that onKeyDown is not called. So my question is; how to I intercept a centre-button press?

P.S. Much to my embarrassment, I'm not even sure what the centre button is called!

</div
  
     
     

Список ответов

3
 
vote
vote
Лучший ответ
 

Вы не можете перехватить , этот ключ (если вы говорите о домашней кнопке) Это функция ОС, которая принимает пользователя к его запускам на короткой прессе, и в Multitask-Menu на длинном прессе.

Если также есть Руководство по качеству Core-App .

ux-n3 нажатие кнопки домой в любой точке навигации к дому экран устройства.

Что вы можете обнаружить, это ваше приложение отправляется на фоновом режиме с использованием <Код> onStop() .

Перед Android 3.0, деятельность может быть убита непосредственно из <Код> onPause() без удаления <код> onStop() . Поэтому, если вы также нацеливаете предварительные устройства для сотовых устройств, вам может потребоваться посмотреть на <Код> onPause() событие.

 

You can't intercept that key (if you are talking about the home-button) It is an OS function, which takes the user to his launcher on short-press, and to the multitask-menu on long-press.

If is also a Core-app Quality Guideline.

UX-N3 Pressing the Home button at any point navigates to the Home screen of the device.

What you could detect is your application being sent to the background using onStop().

Before Android 3.0, activities could be killed directly from onPause() without hitting onStop(). So if you are targeting pre-honeycomb devices as well, you might need to look at the onPause() event as well.

</div
 
 
     
     
0
 
vote

Центральная кнопка, которую вы ищете, скорее всего, <код> KEYCODE_DPAD_CENTER / код> . Это часто бывает в центре телефонов. По крайней мере, старые у них есть, но это больше не общее. Также обычно нет на таблицах.

Эта кнопка имеет для большинства элементов пользовательского интерфейса, по умолчанию по умолчанию нажав текущую вещь. Поэтому постарайтесь не сломать эту функциональность (и вернуть ложь из <код> onKey... ) для пользователей, использующих DPAD навигацию в вашем приложении.

 

The center button you look for is most likely KEYCODE_DPAD_CENTER. That one would often be in the center of phones. At least the older ones have it, but it's no longer a common thing. Also typically not present on tables.

That button has for most UI elements a default behavior of clicking the current thing. So try not to break that functionality (and return false from onKey...) for users that use dpad navigation in your app.

</div
 
 

Связанный проблема

64  Uninstall adb не удалось  ( Adb uninstall failed ) 
Я пишу некоторые образцы приложений. После отладка этих приложений я не вижу кнопку удаления в управлении приложениями моего устройства. Когда я делаю ADB у...

0  Новое развитие приложений с использованием Cordova и Ionic  ( Native app development using cordova and ionic ) 
Как сохранить процесс или сервис всегда запущены даже после того, как приложение будет убито пользователем, похожее на секундомер, который будет запущен даже ...

4  Проблемы о переполнении размера кучи со звуковыми клипами  ( Heap size overflow issues with sound clips ) 
Я создаю приложение для Android, которое включает несколько коротких звуковых зажимов. На данный момент я использую SoundPool для загрузки моих звуковых кли...

0  Swiperefresh ListView, обновления, но не то, как вы ожидаете  ( Swiperefresh listview updates but not how you would expect ) 
У меня есть список, который использует функцию SwipeFresh, и я столкнулся с странной проблемой. Когда я проводлю вниз, я вижу анимацию и мою информацию (обнов...

-3  Как прекратить воспроизведение сервиса в Android  ( How to stop playing service in android ) 
У меня есть вопрос о сервисе и трансляции в Android.I Создайте страницу будильника, которые используя класс тревоги Reciver (он расширяет класс трансляции) дл...

0  Запуск Android-тестового проекта от Launcher  ( Running android test project from launcher ) 
У меня есть некоторые требования, где я должен запускать тестовый проект в любое время на моем устройстве, не подключая его к системе и запущена через Eclipse...

0  Async HTTP-запрос и Arduino  ( Async http request and arduino ) 
Я разрабатываю приложение для Android, которое будет общаться с Arduino Uno, хотя WiFi. Arduino уже запрограммирован, чтобы включить цифровой порт 12, когда я...

16  Обычная задача Android (эквивалент Cronjob)  ( Android regular task cronjob equivalent ) 
Последний раз, когда этот вопрос был задан (другим пользователем), ответ ответа был: Если это работает в беговой активности, вы можете использовать таймер ...

0  Как я могу прочитать все контакты в Android 1.5 на мобильном?  ( How can i read all contacts in android 1 5 mobile ) 
Я хочу быть в состоянии прочитать все контакты в Android Mobile версии 1.5. Пожалуйста, помогите мне. Список считывать контент и пример, пожалуйста, спасибо...

0  Как добавить анимацию на фоне в живых обоях в андроид?  ( How to add animation on background in live wallpaper in android ) 
Я хочу добавить прикосновение эффект с анимацией в живых обоях: <код> Bitmap img = BitmapFactory.decodeResource(getResources(),R.drawable.heart); float x = ...

0  Случайные 7-значные номера на andich android  ( Random 7 digit numbers on click android ) 
Я хотел бы, чтобы вы помогли мне в этом коде. Я могу генерировать случайные числа, но не в точном количестве. Вопрос: Как я могу генерировать 7 случайных ци...

0  Android полноэкранный  ( Android fullscreen ) 
Я разрабатываю приложение Android, используя Eclipse. Я заметил одно и то это приложение не показывает на полном экране. Есть пустые черные пространства вокру...

2  Как обрабатывать Swipe-To-Remove на RecyClerview правильно?  ( How to handle swipe to remove on recyclerview correctly ) 
фон Я пытаюсь позволить удалить элементы вида рецирллеров, но по какой-то причине он не всегда всегда играет, показывая пустые пробелы вместо карт. Я сдел...

1  Установка поля _ID с использованием SQLite & ContentProvider в Android  ( Setting the id field using sqlite contentprovider in android ) 
Я пытаюсь настроить ContentProvider в приложении Android, чтобы держать информацию о домах. Я хотел бы иметь возможность установить поле _id, чтобы быть таким...

1  Можно ли построить ящики Edittext, как ListView?  ( Is it possible to build edittext boxes like a listview ) 
Так что в основном то, что я хотел бы сделать, это уметь создать список редактируемых полей, используя ящики Edittext. Однако вместо того, чтобы войти в мой X...




© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.