Android Permission,required =“false”,失败

时间:2012-05-22 18:15:15

标签: android permissions

我的应用程序为用户提供可选访问短信和电话的权限。我用过:

 <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参数无法完成其工作。

这是一个错误吗?还有其他我可以做的吗?

3 个答案:

答案 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" />