2010-07-10 9 views
3

Я написал код, который отключает телефон при поступлении входящего вызова. Когда телефон в режиме вибрации Я использую следующий код, чтобы остановить вибрацию телефона:android Phone Vibration не прекращает использовать метод отмены

Vibrator vib = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 
vib.cancel(); 

В то время как он работал на моем Nexus One с Android 2.1, кажется, что это не останавливает вибрацию на HTC Desire телефон с Android 2.1. Кто-нибудь столкнулся с этой проблемой?

Дорон

ответ

0

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

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

0

Это один из минусов с Android, различные устройства ведут себя по-разному. Вы пробовали использовать vibrate(3000);, что эквивалентно тому, что устройство вибрирует в течение 3 секунд, чтобы попытаться отменить начатую службу?

+0

, а затем, когда мы реализуем «Pattern-Vibrate» , такие как long [] pattern = {0L, 100L, 250L, 1000L, 250L, 500L}; \t \t \t вибратор.вибрат (узор, 2); так что «Отмена» должна быть там, чтобы остановить вибрацию. –

+0

Согласен, но если cancel() не работает на HTC Desire - тогда что еще вы можете сделать? Также выяснилось, что эта проблема не нова для устройства: http://forum.xda-developers.com/showthread.php?t=661702 –

+0

Бенни, спасибо за ответ. Мне нужен телефон, чтобы перестать вибрировать при входящем звонке. Как мне это вибрировать в течение 3 секунд? – DoronBM