2014-08-29 4 views
6

알림을 사용하는 앱을 테스트하고 있는데 진동이있는 알림을 보내야합니다. 현재 내 매니페스트에 진동 권한이 없습니다. 내가 가지고있는 필요성을 이해하지만, 허락없이 장치들 사이에서 이상한 행동을보고 있습니다.일부 기기에만 진동 허용이 필요합니다.

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

나는 주로 허가 세트가 없어도 진동을 할 수있는 Galaxy S4에서 테스트합니다. Android 4.3에 있습니다. 나는 삼성 갤럭시 넥서스로 테스트했는데, 진동을 시도 할 때 런타임 예외가 발생하여 권한이 없다는 것을 나타냅니다. Nexus는 Android 4.3에 있습니다.

나는 허가를 받아야한다는 것을 이해하지만, 왜 S4가 허락을받지 않았 음을 신경 쓰지 않는 것일까 요? S4 재고 ROM이 사용 권한을 정말로 신경 쓰지 않을 수도 있습니까?

은 여기 가치있는 것을 위해, 생성 된 내부 예외였다

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) 

답변

6

당신은이 권한을 포함해야한다.

Google Nexus 4에서 문제없이 테스트했지만 HUAWEY 및 BQ와 같은 다른 모델에 필요하기 때문에 허락을 받아야했습니다.

+1

휴대 전화 제조업체가 왜 이와 같은 표준 Android 권한을 무시할 수 있는지 알 수 없습니다. 이것을함으로써 얻을 수있는 것은 무엇입니까? –

+0

진동 권한을 추가하고 싶지 않으면 try-catch에 우리의'NotificationManager' 코드를 래핑해야합니다. 자세한 내용은 [this] (http://stackoverflow.com/questions/13602190/java-lang-securityexception-requires-vibrate-permission-on-jelly-bean-4-2)를 확인하십시오. Android 4.2에서는 일종의 버그였습니다. –