<uses-feature android:glEsVersion="0x00020000"></uses-feature>
该设置会排除不支持OpenGL ES 2.0的设备,但是客户报告的设备Sony Xperia Tablet Z是支持OpenGL ES 2.0的。需要注意的是,据《Beginning Android Games》一书所说,有个东西,有时候不灵。(感谢这篇博客。)
NOTE: This feature is reported incorrectly by some devices out there, making your application invisible to otherwise perfectly fine devices. Use it with caution.
更稳妥的做法是设置required为false。这表示不支持OpenGL ES 2.0的设备也可以搜索到App并安装,但是需要在代码里判断做一些该做的事。
<uses-feature android:glEsVersion="0x00020000" required="false"></uses-feature>
排除这个,继续找原因。manifest里还有一些permission,有些permission需要硬件权限,即,其隐含了uses-feature,也会排除一些不支持该feature的设备。检查我们App的设置,有如下两项。
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
PROCESS_OUTGOING_CALLS需要android.hardware.telephony,就是说等同于设置了“android.hardware.telephony”的uses-feature,不支持电话功能的tablet,无法在应用商店里搜索到该应用。
测试一下这个猜测,在ASUS TF101(没有电话功能)上的Google Play搜索,搜不到我们App,在Samsung Nexus S手机上的Google Play搜索同样的关键词,可以搜到我们的App。感谢这篇博客。
其实,Google的developer.android.com里都介绍了上面说的这些。仔细阅读以下内容还是很有必要的。
1. Google Play and Feature-Based Filtering:http://developer.android.com/guide/topics/manifest/uses-feature-element.html#market-feature-filtering
2. uses-feature element:http://developer.android.com/guide/topics/manifest/uses-feature-element.html
3. Permissions:http://developer.android.com/guide/topics/security/permissions.html
如果需要设置一个permission,但又不希望其implicit的uses-feature过滤掉设备,可以用uses-feature的android:required="false"属性设置来达到目的。
再试验一下,修改manifest后做了一个App的签名apk上传到Google Play,不发布,只看一眼预览,可以看到,之前支持1247个设备(不支持1891个),现在支持1638个设备(391 added)。
显示remove掉了“android.hardware.telephony”这个feature的过滤。
来源:图灵社区
共有0个评论 我要评论»
网友回复/评论仅代表其个人看法,并不表明本社区同意其观点或证实其描述。
1.不欢迎无意义的回复/评论和类似“顶”、“沙发”之类没有营养的文字
如果只是想简单的表个态,请点 有用无用支持反对 等按钮
2.发言之前请再仔细看一遍文章,或许是您遗漏、误解了,理性讨论、切莫乱喷
3.严禁发布违法、违规的信息,请勿到处招贴广告、发布软文;
4.如果您发现自己的回复/评论不见了,请参考以上3条
5.不停制造违规、垃圾信息的,账户将被禁止