仅在某些设备上需要振动权限

时间:2014-08-29 12:06:11

标签: android android-permissions vibrate galaxy-nexus

我正在测试我的应用程序,它使用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)

1 个答案:

答案 0 :(得分:6)

您应该包含此权限。

我测试了谷歌Nexus 4没有问题,但我必须提出许可,因为像HUAWEY和BQ等其他型号需要它。