Ich teste meine App, die den NotificationManager verwendet, um eine Benachrichtigung zu senden, die eine Vibration ausgibt. Momentan habe ich die Vibrationsberechtigung in meinem Manifest nicht. Ich verstehe die Notwendigkeit, es zu haben, aber ich sehe ein seltsames Verhalten zwischen Geräten, ohne die Erlaubnis zu haben.Vibrationserlaubnis nur auf einigen Geräten erforderlich
Ich teste hauptsächlich auf einem Galaxy S4, das mir erlaubt, die Vibration zu tun, auch ohne die Erlaubnis gesetzt zu haben. Es ist auf Android 4.3. Ich habe gerade mit einem Samsung Galaxy Nexus getestet, das beim Versuch, die Vibration zu erzeugen, eine Runtime-Ausnahme erzeugt hat, was darauf hinweist, dass ich keine Erlaubnis hatte. Der Nexus ist auf Android 4.3.
Ich verstehe, dass ich die Erlaubnis haben sollte, aber warum ist es, dass der S4 schien sich nicht darum zu kümmern, dass es die Erlaubnis fehlte? Ist es möglich, dass der S4-Aktien-ROM die Berechtigungen wirklich nicht interessiert?
war hier die innere Ausnahme erzeugt, für das, was es wert ist:
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)
Ich sehe nur nicht, warum ein Handy-Hersteller Standard-Android-Erlaubnis Zeug wie folgt überschreiben würde. Was ist damit zu erreichen? –
Wir sollten unseren 'NotificationManager'-Code in try-catch umbrechen, wenn wir keine Vibrationsberechtigung hinzufügen möchten. Check [this] (http://stackoverflow.com/questions/13602190/java-lang-securityexception-requires-vibrate-permission-on-jelly-bean-4-2) für weitere Informationen. Anscheinend war es eine Art Bug in Android 4.2 –