为什么应用商店里搜索不到你的App?
来源:互联网 发布:欧莱雅买什么 知乎 编辑:程序博客网 时间:2024/06/11 23:52
原文地址:http://blog.csdn.net/ericzhangali/article/details/9031405
最近连续有国外的客户报告在某些特定的Android设备上搜索不到我们的应用。
一开始怀疑uses-feature的设置排除了硬件不支持的设备。我们在manifest里有以下设置:
- <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.
更稳妥的做法是设置android:required为false。这表示不支持OpenGL ES 2.0的设备也可以搜索到App并安装,但是需要在代码里判断做一些该做的事。
- <uses-feature android:glEsVersion="0x00020000" android: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的过滤。
这个故事结束了,经上线验证,可行。接下来是另一个故事。
有个日本客户,拿两台Acer Iconia Tab测试,一台A100,一台A500。报告我们说某款应用在A100上可以安装,A500上显示“未對應裝置”,无法安装。但是在Google Play Developer Console里显示为“對應裝置”。
在Developer Console里都显示为对应装置,应该不是上述故事中说的坑。而A100和A500的区别是,A100的屏是7.0 inches,1024*600 pixels,A500的屏是10.1 inches,1080*800 pixels。
在一篇日文文章里提到Motorola Xoom 10英寸平板遇到的类似问题时有这么一句:
Xoomは10インチタブレットなので、xlargeサイズ扱いとなり、対象外になってしまったと。
Google翻译说:
Xoom是10英寸平板电脑,大小XLARGE处理,
虽然不懂日语,但也知道这和android:xlargeScreens="true"有关。可是,在另一款App的manifest文件里,也没有如下设置,却不会在A500上有问题。
- <supports-screens android:xlargeScreens="true" />
差异在android:targetSdkVersion。 android:xlargeScreens属性是从API level 9(Android 2.3)开始才支持的。
出问题的那款App,没有显式指定android:targetSdkVersion,于是targetSdkVersion等于minSdkVersion,为8。
经测试,指定targetSdkVersion为9即可解决该坑。
- <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="9" />
- 为什么应用商店里搜索不到你的App?
- 为什么应用商店里搜索不到你的App?
- 为什么应用商店里搜索不到你的App?
- iOS--在线搜索苹果 App Store 应用商店
- 商店应用的进程模型 -- 管理App
- 应用商店App Store
- 研发 | Unity资源商店里的免费资源,你一定要知道!
- 腾讯云搜问题解答1——用户为什么在你的网站搜索不到想要的内容
- BlackBerry应用商店(App World)
- Android跳转到应用商店的APP详情页面
- 为什么在controller里取不到密码框的值
- App 为什么收不到推送?
- win10搜索不到app解决方案
- Appuploader-让你在Windows下上传iOS APP到苹果应用商店
- 你为什么拿不到高薪
- 你为什么拿不到高薪??
- 为什么银行查不到你的身份信息?
- 为什么银行查不到你的身份信息?
- eclipse中调整字体大小
- java中关于try、catch、finally中的细节分析
- ASP.NET中时间的绑定和格式化
- 智能手机应用去除返回键
- getsockopt/setsockopt 函数说明 .
- 为什么应用商店里搜索不到你的App?
- win32应用程序框架的两种方式
- DM8168集成图像算法
- C#常用控件的属性
- 软件架构师需要知道的97件事
- 无限级别菜单下拉
- native2ascii
- git reset用法 一 重置引用(版本切换)
- WIFI Demo