这两天发现我们的应用在Android Market 上,有的手机搜索不到,原因是:

此应用只适用于具备相应功能的设备

然后后面列出了许多硬件设备的uses-feature

问题的原因是我们的应用中需要的权限太多,导致没有定义中提到的权限的设备无法搜索到我们的应用。

经调查:我们的应用中并没有使用到uses-feature标签,那为什么给出的提示会是“此应用只适用于具备相应功能的设备”呢?

后来查了一下原因,在我们使用permission的时候,在需要某些硬件权限的时候,其实已经隐含使用了uses-feature。

如下表:

Category This Permission... Implies This Feature Requirement
Bluetooth BLUETOOTH android.hardware.bluetooth

(See Special handling for Bluetooth feature for details.)

BLUETOOTH_ADMIN android.hardware.bluetooth
Camera CAMERA android.hardware.camera and
android.hardware.camera.autofocus
Location ACCESS_MOCK_LOCATION android.hardware.location
ACCESS_LOCATION_EXTRA_COMMANDS android.hardware.location
INSTALL_LOCATION_PROVIDER android.hardware.location
ACCESS_COARSE_LOCATION android.hardware.location.network and
android.hardware.location
ACCESS_FINE_LOCATION android.hardware.location.gps and
android.hardware.location
Microphone RECORD_AUDIO android.hardware.microphone
Telephony CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony
Wifi ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi

这时我们又做了一下调查

我们的应用中有这样一个feature,查看文档后

        
  1. android.hardware.touchscreen


注释为:

        
  1. applicationsrequiretheandroid.hardware.touchscreenfeaturebydefault


可以修改:

        
  1. <uses-featureandroid:name="android.hardware.touchscreen"android:required="false"/>

这样我们就找到了问题的解决方法,即


        
  1. <uses-featureandroid:name="string"android:required="false"/>

这样就不会要求设备必须具有该硬件设备,这样我们的应用程序就可以被更多的手机适配了。

更多相关文章

  1. 从HTML5统治世界的说法来看Native APP 和 WEB APP 的差别
  2. Android用户权限之记录是否调起弹窗
  3. Android兼容性测试应该怎么做逼格更高呢?
  4. Android之手机出现"已安装了存在签名冲突的同名数据包"的原因及
  5. Ubuntu上开发Android,手机调试配置
  6. Android与物联网设备通信-网络模型分层
  7. 不同手机在豌豆夹上显示设备同名的解决方法 && Android(安卓)获
  8. Android(安卓)Studio真机无线调试(2020最新亲测有用)
  9. 用android做的一个简单的电话拨号器的错误的解决(用android模拟两

随机推荐

  1. OceanBase、X-DB、POLARDB 分布式关系型
  2. Netfliter状态跟踪之动态协议的实现浅析(t
  3. PolarDB和Aurora区别
  4. POLARDB问题
  5. ‘大案牍术’遇上阿里云数据库POLARDB,火
  6. 网络子系统在链路层的收发过程剖析
  7. MongoDB-Elasticsearch 实时数据导入
  8. PHP提交表单失败后如何保留已经填写的信
  9. 超全局变量与命名空间
  10. 六种实现负载均衡技术的方式