我正在测试我的应用程序,它使用NotificationManager发送一个振动的通知。目前,我的清单中没有Vibrate权限。我理解需要它,但是在未经许可的情况下我看到设备之间有一些奇怪的行为。
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
我主要在Galaxy S4上进行测试,即使没有设置权限,也可以让我进行振动。这是在Android 4.3上。我刚刚测试了三星Galaxy Nexus,它在尝试振动时产生了运行时异常,表明我没有获得许可。 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)
答案 0 :(得分:6)
您应该包含此权限。
我测试了谷歌Nexus 4没有问题,但我必须提出许可,因为像HUAWEY和BQ等其他型号需要它。