2012-05-22 42 views
8

我的應用程序向用戶提供了可選的對SMS和電話的訪問。我曾使用過:Android權限,required =「false」,失敗

<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參數沒有完成它的工作。

這是一個錯誤?還有什麼我能做的嗎?

回答

18

你爲什麼要把所需的參數放在一個權限內? Android的:當你聲明一個功能所需param用於,據我所知...... 例如:

<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" /> 
+0

,因爲有些使用-featu res導致谷歌播放生成使用權限,影響某些設備的過濾。強調一些。 –

+0

@IncrediApp感謝您分享鏈接。該表的權限特徵映射數量有限。清單中哪些未在鏈接中的表中列出的權限? – LoveForDroid

4

你可以看到在AndroidManifest.xml文件權限選項卡中的所有權限。

0

你鴕鳥政策需要使用屬性android:required<uses-permission它僅適用於<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" />