我有一个应用程序(已经发布),其中我开发了振动的新功能。所以我添加了新的权限:
<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上发生