Запутался с android.hardware.touchscreen - PullRequest
1 голос
/ 27 июня 2011

Я собираюсь поддерживать устройства Android, не оснащенные сенсорными экранами, вставляя манифест

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

Но все же у меня есть некоторые сомнения. Например. Основная часть моего пользовательского интерфейса приложения основана на контекстных меню, которые появляются при длинном нажатии виджетов EditText и ImageView.

Мне просто интересно, не хватает ли устройству сенсорного экрана, как функционирует контекстное меню? Может кто-нибудь сказать мне?

1 Ответ

3 голосов
/ 27 июня 2011

Согласно последнему Документу определения совместимости Android (CDD) каждое устройство Android должно иметь сенсорный ввод. Но это требование было введено гораздо раньше, я смог отследить его до Android 1.6. Я не смог отследить Android 1.5 CDD, но я не могу вспомнить ни один телефон Android 1.5 без поддержки сенсорного экрана.

Так что вы можете просто пока игнорировать устройства без поддержки сенсорного экрана. Их нет в Android Market. И <uses-feature> полезен только для маркета, система Android не проверяет поддержку совместимых функций на устройстве перед установкой приложения.


Совместимость с Android: http://source.android.com/compatibility/
Android 1.6 CDD ( см. Раздел 8.5 ): http://source.android.com/compatibility/1.6/android-1.6-cdd.pdf
Android 2.1 CDD ( см. Раздел 8 ): http://source.android.com/compatibility/2.1/android-2.1-cdd.pdf
Последний Android CDD: http://source.android.com/compatibility/2.3/android-2.3.3-cdd.pdf


С Android 2.3 CDD:

7.2.4. Сенсорный ввод
Реализации устройства:
• ДОЛЖЕН иметь сенсорный экран
• МОЖЕТ иметь емкостный или резистивный сенсорный экран
• ДОЛЖЕН сообщать значение android.content.res.Configuration, соответствующее типу конкретного сенсорного экрана на устройстве
• ДОЛЖЕН поддерживать полностью независимо отслеживаемые указатели, если сенсорный экран поддерживает несколько указателей

...