2011-05-17 66 views
7

在我的應用程序中,我嘗試使用位置信息(如果有)。因此,我在清單中擁有這些權限:避免Android Market市場對可選位置信息的過濾

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

注意:我沒有位置,這是我瞭解的標籤用於在Android電子市場進行過濾。

當我上傳到Android市場我得到這樣的報道:

該apk請求4層的功能,將 用於Android電子市場過濾 android.hardware.location.network android.hardware.location android.hardware.location.gps android.hardware.touchscreen

這對我意味着它只會顯示爲具有定位和location.network和GPS公頃設備rdware。

但我使用的位置是可選的,如果它不是可用的應用程序將工作。

我應該從清單中刪除這些權限嗎(當我嘗試使用它時,是否會收到異常?)?

有沒有辦法讓他們離開權限,並避免基於他們的Android Market過濾?

+0

我已經嘗試添加一個明確的使用特性,但使它們可選,從而: 但沒有改變一切。 – 2011-05-17 14:04:04

回答

3

我的應用程序有同樣的問題。我想這是因爲minSdkVersion是4,即Android 1.6。從<uses-feature> documentation

一般來說,如果您的應用程序被設計爲在Android 1.6及更早版本中運行,在android:required屬性是不是在API中可用的和Android Market假定任何和所有聲明都是必需的。

這是有道理的,因爲當你宣佈一個特徵爲可選,你應該使用來自PackageManagerhasSystemFeature()方法來檢查當前設備是否具有特定的功能。但是,此方法本身僅適用於API Level 5!

+0

很好找。惱人的問題。我希望他們可以更清楚地說明,'android:required'屬性直到API5才被引入,而不必深入文檔以找到該引用。在頁面的頂部,他們只是說''標籤是在API4中引入的,但是沒有提到'required'屬性直到API5。 – 2012-02-14 23:36:00