【发布时间】:2015-12-09 04:44:37
【问题描述】:
我的应用在某些手机上没有显示在 Google Play 商店中,例如 Samsung GT-S5830i 我不知道是因为我的 <uses-permission> 还是我的 min SDK 或我的屏幕尺寸权限。
在看到this 后,我将我所有的<uses-permission> 变成了<uses-feature>,并在每个权限中添加了android:required="false"。 现在,我需要检查我的 java 代码中的功能可用性,因为权限是可选的,这样我就可以避免 java.lang.SecurityException: Permission Denial 我将如何在以下权限中做到这一点:
<uses-feature android:name="android.permission.MODIFY_AUDIO_SETTINGS" android:required="false" />
<uses-feature android:name="android.permission.VIBRATE" android:required="false" />
<uses-feature android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.permission.GET_TASKS" />
<uses-feature android:name="android.permission.INTERNET" android:required="false"/>
我很确定所有手机和平板电脑都可以通过我的权限,所以我什至认为我不需要将其设为 feature 并添加 required="false"。如果不是权限,则可能是屏幕大小权限。
我应该在清单中做这样的事情吗?
<compatible-screens>
<screen
android:screenDensity="ldpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="normal" />
<screen
android:screenDensity="xhdpi"
android:screenSize="large" />
<screen
android:screenDensity="xhdpi"
android:screenSize="xlarge" />
</compatible-screens>
目前,我有这个:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
会不会是 SDK 的原因?
感谢您告诉我是因为权限、SDK 还是屏幕尺寸,以及我应该如何保持某些权限可选,
鲁基尔
【问题讨论】:
-
min-sdk现在是 11 岁 -
我不认为它的最小 SDK 问题。我从来没有在最常见的文件中写过
标签。如果您删除 标签并将 改回 ,我确定它适用于所有设备。 -
@kevz 那为什么它没有出现在特定手机的 Play 商店中?
-
您是否在该设备上测试过您的应用程序?因为 Vivid Vervet 可能存在 min sdk 问题。
-
@kevz 我无法在该设备上测试它,因为我什至无法在 Play 商店中看到该应用程序! :)
标签: java android string permissions android-manifest