VIBRATE权限为可选

时间:2017-07-17 10:39:25

标签: android android-vibration

我有一个应用程序(已经发布),其中我开发了振动的新功能。所以我添加了新的权限:

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

发布更新后,我注意到我的Nexus 7 2013没有获得更新,可能是因为该设备根本没有振动器......所以在下一个版本中我已经改变上面的行到

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

这可能是正确的...然后我的Nexus成功更新了。但现在我在设备4.0-4.3上偶尔会看到崩溃

  

致命异常:java.lang.SecurityException需要VIBRATE   许可

据我所知,行android:required仅适用于uses-feature而不适用于uses-permission,因此问题是:如何为VIBRATE声明适当的权限允许安装在无振动设备上,还避免使用旧的,不幸的是仍支持的设备{/ 1}}

PS。目前我认为proper perm declaration应该如下所示,但我不想“测试”生产环境的声明。任何人都可以确认吗?

SecurityException

基于新设备上的崩溃和仍然工作的振动,即使可能不适用于VIBRATOR <uses-permission android:name="android.permission.VIBRATE" android:maxSdkVersion="18" /> 声明(因此目前没有任何许可)。也许既然KitKat没有必要像writing on SD那样声明振动烫发?我在文档中找不到任何相关内容......另外:Wikipedia official app

中存在上述声明

编辑 - 更复杂的信息:引入号码100 uses-feature,Nexus 7未获得更新。一周后101发布时没有任何清单更改(除了版本号ofc)和与此新功能相关的代码(其他组件中的错误修正),Nexus仍然没有更新。下周和rel 102,没有变化。然后我在103中更改为uses-permission并且Nexus在同一天获得更新...并且此版本崩溃开始在4.0-4.3上发生

0 个答案:

没有答案