我正在测试使用NotificationManager发送振动通知的应用程序。目前,我的清单中没有Vibrate权限。我了解需要此权限,但在没有该权限的设备之间看到一些奇怪的行为。
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
我主要在一款Galaxy S4上进行测试,即使没有设置权限,也可以通过它进行振动。它运行的是Android 4.3版本。我刚刚尝试了一下Samsung 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)
NotificationManager
代码中使用 try-catch 进行包装。查看 此链接 获取更多信息。显然这是 Android 4.2 中的某种错误。 - Bugs Happen