Android: метод вибратора (если в телефоне нет вибратора?) - PullRequest
5 голосов
/ 14 января 2012

Я хочу использовать метод вибратора в своем приложении, и у меня он работает на моем телефоне, который имеет отличный вибратор. Однако телефоны, которые не имеют вибратор, что происходит. это не работает вообще? это останавливает работу приложения? или он вообще не появляется на рынке? или мне нужно спросить телефон, есть ли у него вибратор?

Я также хотел бы знать, хорош ли этот код или нуждается в каких-либо корректировках? вот мой код ..

Vibrator vi;

vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

vi.vibrate(100);

<uses-permission android:name="android.permission.VIBRATE" /> (In manifest)

Спасибо, любая помощь будет отличной.

Ответы [ 2 ]

14 голосов
/ 14 января 2012

Проверьте документы, http://developer.android.com/reference/android/os/Vibrator.html

все, что вам нужно сделать, это проверить, есть ли на телефоне вибратор, вот так:

 Vibrator vi;

 vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

 if(vi.hasVibrator()){
     vi.vibrate(100);
 }

Из-за разрешения вибрации Android market может фильтровать ваше приложение только с телефонами с вибрацией. Чтобы избежать этого, вы можете использовать тег с атрибутом required = "false"

 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-feature android:name="there.isnt.a.vibrate.feature" android:required="false" />

Здесь все задокументировано:

http://developer.android.com/guide/topics/manifest/uses-permission-element.html

http://developer.android.com/guide/topics/manifest/uses-feature-element.html

ОДНАКО

Строка функции Vibrate отсутствует, поэтому Android Market не будет фильтровать ваше приложение, так как вы используете разрешение вибрации. Так что вы можете просто использовать использование-разрешение и выполнить проверку в коде Java.

Устройствам нужен вибратор, чтобы быть совместимым с рынком Android, но, конечно, это не подходит для Amazon и других рынков приложений (Barnes & Noble Nook не имеет вибрации).

Это подтверждается ответом Dianne Hackthorn (ведущий разработчик Android в Google) на эту тему: http://groups.google.com/group/android-developers/browse_thread/thread/7713e796ea2d0f5f

2 голосов
/ 14 января 2012

не работает вообще? это останавливает работу приложения?

Ваш запрос на вибрацию следует просто игнорировать.

или его вообще нет на рынке?

Вы не можете отфильтровать устройства из Маркета, в которых отсутствует вибрационный двигатель. Следовательно, разрешение VIBRATE не относится к числу тех, где , если вы запрашиваете его, подразумевает аппаратную функцию .

или мне нужно спросить телефон, есть ли у него вибратор?

Вы можете на уровне API 11 и выше - см. Ответ Бланделла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...