Разрешение на вибрацию требуется только на некоторых устройствах

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

<uses-permission android:name="android.permission.VIBRATE"></uses-permission>

В основном я тестирую Galaxy S4, который позволяет мне делать вибрацию даже без установленного разрешения. Это на андроиде 4.3. Я только что протестировал Samsung Galaxy Nexus, который генерировал исключение во время выполнения при попытке сделать вибрацию, указывая на то, что у меня нет разрешения. Nexus работает на Android 4.3.

Я понимаю, что у меня должно быть разрешение, но почему S4, похоже, не заботит отсутствие разрешения? Возможно ли, что стандартное ПЗУ S4 действительно не заботится о разрешениях?

Вот сгенерированное внутреннее исключение, для чего оно стоит:

 Caused by: java.lang.SecurityException: Requires VIBRATE permission
        at android.os.Parcel.readException(Parcel.java:1431)
        at android.os.Parcel.readException(Parcel.java:1385)
        at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:320)
        at android.app.NotificationManager.notify(NotificationManager.java:136)
        at android.app.NotificationManager.notify(NotificationManager.java:109)

person Stealth Rabbi    schedule 29.08.2014    source источник


Ответы (1)


Вы должны включить это разрешение.

Я без проблем тестировал для Google Nexus 4, но мне пришлось поставить разрешение, потому что оно нужно другим моделям, таким как HUAWAY и BQ.

person malcubierre    schedule 29.08.2014
comment
Я просто не понимаю, почему производитель телефонов отменяет стандартные разрешения Android, подобные этому. Что можно получить, делая это? - person Stealth Rabbi; 29.08.2014
comment
Мы должны обернуть наш код NotificationManager в try-catch, если мы не хотим добавлять разрешение на вибрацию. Проверьте это для получения дополнительной информации. Видимо это был какой-то баг в Android 4.2 - person Bugs Happen; 22.09.2016