我有一个应用程序(已经发布),我已经开发了振动的新功能.所以我添加了新的权限:
android:name="android.permission.VIBRATE" />
发布更新后我注意到我的Nexus 7 2013没有得到更新,可能是因为这个设备根本就没有Vibrator ...所以在下一个版本中我已经将上面的行更改为
android:name="android.permission.VIBRATE"
android:required="false"/>
这可能是正确的...然后我的Nexus成功更新了.但现在我在设备4.0-4.3上偶尔会看到崩溃
致命异常:java.lang.SecurityException需要VIBRATE权限
据我所知,line android:required仅适用于uses-feature而不适用于uses-permission,因此问题是:如何声明VIBRATE允许安装在无振动设备上的适当权限,以及避免SecurityException使用旧的,不幸的仍然受支持的设备?
PS.目前我认为正确的烫发声明应该如下所示,但我不想在生产环境上"测试"声明.任何人都可以确认吗?
android:name="android.permission.VIBRATE"
android:maxSdkVersion="18" />
基于新设备上的碰撞和仍然工作的振动,即使可能不适合VIBRATOR uses-feature声明(因此目前没有许可).也许既然KitKat没有必要像在SD上写一样来声明振动烫发?我在文档中找不到任何相关内容...另外:上述声明存在于维基百科官方应用程序中
编辑 - 更复杂的信息:引入数量100 uses-permission,Nexus 7没有得到更新.一周后101发布没有任何清单更改(除了版本号ofc)和与此新功能相关的代码(其他组件中的错误修正),Nexus仍然没有更新.下周和rel 102,没有变化.然后我改为uses-feature103并且Nexus在同一天得到更新...并且因为这个版本崩溃开始发生在4.0-4.3