安卓:Notification.DEFAULT_VIBRATE是否需要振动权限?

12
有时我会读到以下代码: notification.defaults|= Notification.DEFAULT_VIBRATE; 以及 notification.defaults = Notification.DEFAULT_ALL; 需要振动权限 <uses-permission android:name="android.permission.VIBRATE" ></uses-permission> 但有时我也会看到说不需要。
哪一个是正确的?

3
需要震动权限,否则应用无法运行! - Parth Doshi
1
是的,您必须指定权限。 - Arshad Ali
2
有趣的是,我可以在一个设备上(Nexus 4运行4.2)运行此代码(使用DEFAULT_ALL),而无需请求VIBRATE权限,但在另一个设备上(Nexus S运行4.1)它会崩溃。 - Ciske
1
同样的情况,HTC ONE X使用4.2版本不需要该权限。 - pomber
1
我遇到了类似有趣的行为:我在应用程序中使用Notification.DEFAULT_VIBRATE显示通知,在所有设备上都没有问题,直到我添加了推送通知支持的权限。一旦我添加了这个权限,我就会因为在4.2之前的设备(只有4.0.X - 4.1.X)上没有包括VIBRATE权限而导致崩溃。 - Stefan Anca
显示剩余5条评论
2个回答

9

好的,显然,您需要振动权限。谢谢!


是的,请查看文档:https://developer.android.com/reference/kotlin/android/app/Notification#default_vibrate - emersion

7

你可能有兴趣阅读:https://android.googlesource.com/platform/frameworks/base/+/cc2e849

截至4.2.1版本:

通知震动改进:[请勿合并]

  • 当通知在回退模式下以震动方式提醒(即因为它们要播放声音但设备处于震动模式),不再需要VIBRATE权限。
  • 作为额外的好处,如果您的通知使用DEFAULT_VIBRATE,则也不需要VIBRATE权限。
  • 如果指定了自定义振动模式,则仍需要VIBRATE权限。
  • 在回退模式下震动的通知使用相同的振动模式,但可以在将来轻松更改。
  • DEFAULT_VIBRATE和回退震动模式现在在config.xml中指定。

1
比起只回答“是”(作为被接受的答案),这个回答要好得多,但通常我们不需要这个许可,所以实际的答案是“不”。 - user924
1
但实际答案不是“取决于你的安卓版本”吗? - Mike Lambert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接