我的应用程序为用户提供可选访问短信和电话的权限。我用过:
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS" android:required="false"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false"></uses-permission>
Google Play不会将此应用程序公开给没有蜂窝网络访问权限的设备。似乎required = false参数无法完成其工作。
这是一个错误吗?还有其他我可以做的吗?
答案 0 :(得分:18)
为什么要将所需参数放入权限中? 当你声明一个功能时,会使用android:required param,afaik ...... 例如:
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
我认为您要做的是使用uses-feature
添加android:required="false"
声明。
使用此表更新清单: http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features
<uses-feature android:name="android.hardware.telephony" android:required="false" />
答案 1 :(得分:4)
您可以在AndroidManifest.xml
文件的权限标签中查看所有权限。
答案 2 :(得分:0)
您无需在android:required
中使用该属性<uses-permission
,它仅适用于<uses-feature
,请参阅
uses-feature :要控制过滤,请始终明确声明硬件功能 元素,而不是依赖于Google Play “发现”
<uses-permission>
元素中的要求。然后,如果 如果要禁用特定功能的过滤,可以添加android:required="false"
属性声明。
这是暗示硬件功能的权限列表:
https://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions-features
根据您的元素:
您可能只需要添加:
<uses-feature android:name="android.hardware.telephony" android:required="false" />