使Android“uses-permission”可选

使Android“uses-permission”可选,第1张

概述我有这些: <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:name="android. 我有这些:

<uses-permission androID:name="androID.permission.ACCESS_COARSE_LOCATION" />    <uses-permission androID:name="androID.permission.ACCESS_FINE_LOCATION" />  <uses-feature androID:name="androID.harDWare.location.gps" androID:required="false" />

我可以自己检查GPS:

locationManager = (LocationManager)     context.getSystemService(Context.LOCATION_SERVICE);fSupportsGPS = (locationManager.getAllProvIDers().    contains(LocationManager.GPS_PROVIDER));

但我还是有些疑惑.我希望我的应用程序在没有wifi / gps /网络的设备上运行.我唯一使用GPS的原因是在Google地图上显示用户位置. (与其他应用程序相比,这是一个微小的功能,所以我不想对它有任何要求.)

解决方法 <uses-feature ...>告诉AndroID应用程序必须要求该功能,并且无法使用该功能,因此AndroID不允许用户安装该应用程序(事实上,它甚至不会出现在Play商店/市场中.

要让没有这些功能的用户安装您的应用程序,您只需为相应的功能添加androID:required =“false”选项.您已使用此XML在清单中完成了以下 *** 作:

<uses-feature androID:name="androID.harDWare.camera" androID:required="false"/>

要检测用户是否具有该功能(因为现在不是必须的),您可以使用AndroID API.您已经使用此Java代码完成了此 *** 作:

locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);     fSupportsGPS = (locationManager.getAllProvIDers().contains(LocationManager.GPS_PROVIDER));

现在,您不能做的一件事是让使用AndroID 1.6及更早版本的用户安装应用程序,即使这些功能被标记为可选.这是b’co​​z,AndroID版本无法识别androID:必需功能,如this answer中所述.

另外要记住的是一些< uses-permission ...>标签将触发对权限的一些隐含要求.

要解决这个问题,引用docs:

If you don’t want Google Play to filter based on a specific implIEd
feature,you can disable that behavior. To do so,declare the feature
explicitly in a element and include an
androID:required=”false” attribute. For example,to disable filtering
derived from the CAMERA permission,you would declare the feature as
shown below.

<uses-feature androID:name="androID.harDWare.camera" androID:required="false" />

根据this page,< uses-permission androID:name =“androID.permission.ACCESS_COARSE_LOCATION”/>意味着网络的要求.要禁用它,请将其添加到清单中:

<uses-feature androID:name="androID.harDWare.location.network" androID:required="false" />
总结

以上是内存溢出为你收集整理的使Android“uses-permission”可选全部内容,希望文章能够帮你解决使Android“uses-permission”可选所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存