2014-08-29 23 views
6

Sto testando la mia app che utilizza NotificationManager per inviare una notifica che fa una vibrazione. Attualmente, non ho il permesso Vibrate nel mio manifest. Capisco la necessità di averlo, ma sto vedendo alcuni comportamenti strani tra i dispositivi senza avere il permesso.Autorizzazione vibrazione richiesta solo su alcuni dispositivi

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

I principalmente prova su un Galaxy S4, che mi permette di fare la vibrazione, anche senza avere il set di autorizzazioni. È su Android 4.3. Ho appena provato con un Samsung Galaxy Nexus che ha generato un'eccezione di runtime durante il tentativo di eseguire la vibrazione, indicando che non avevo il permesso. Il Nexus è su Android 4.3.

Capisco che dovrei avere il permesso, ma perché è che la S4 non sembrava preoccuparsi del fatto che mancava il permesso? È possibile che la ROM di serie S4 non si preoccupi davvero delle autorizzazioni?

qui era l'eccezione interna generata, per quel che vale:

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) 

risposta

6

È necessario includere questa autorizzazione.

Ho provato senza problemi per Google Nexus 4, ma ho dovuto mettere il permesso perché altri modelli come HUAWEY e BQ ne hanno bisogno.

+1

Solo che non vedo perché un produttore di telefoni sovrascrive le autorizzazioni standard di Android come questo. Cosa si può guadagnare facendo questo? –

+0

Dovremmo includere il codice 'NotificationManager' nel try-catch se non vogliamo aggiungere il permesso di vibrare. Controlla [questo] (http://stackoverflow.com/questions/13602190/java-lang-securityexception-requires-vibrate-permission-on-jelly-bean-4-2) per maggiori informazioni. Apparentemente era una specie di bug in Android 4.2 –

Problemi correlati