2011-08-30 94 views
3

上的功能(S)不可用我在Android Market的Android應用程序,但一些用戶抱怨顯示錯誤的安裝開始時,只需下載後:應用程序需要您的設備

enter image description here

其中一人向我發送了一個顯示此錯誤的視頻,並且我可以看到此錯誤不是由應用程序引起的,而可能是驗證權限/功能過程。

據我所知,這個錯誤只發生在運行Eclair的摩托羅拉Droid/Milestone設備上,這與Froyo不會發生。不幸的是,我無法訪問像這樣的設備來運行logcat並檢查發生了什麼。

這裏是我的許可/功能上的AndroidManifest.xml:

<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.location" /> 
<uses-feature android:name="android.hardware.telephony" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.FLASHLIGHT" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_GPS" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

你會發布用戶抱怨的功能不可用的列表嗎? – Shlublu

+0

當設備不支持請求的權限時,市場不應該向設備發佈應用程序。 Motorala Droid是否在Android市場發行商控制檯的「兼容設備」列表中? – rds

+0

抱歉rds,我不知道在哪裏可以找到市場控制檯中的兼容設備列表。我檢查了這個設備的規格,它似乎具有運行該應用程序所需的所有功能... =/ –

回答

2

我終於找到了什麼通過獲取Droid的設備和運行logcat的發生:

E/PackageManager(1280):包com.mycompany.myapp要求不可用的功能android.hardware.telephony;失敗!

運行Eclair的摩托羅拉Droid設備不能安裝在他們的清單申報

<uses-feature android:name="android.hardware.telephony" /> 

應用。不過,這很奇怪,因爲Android Market應該將它從這些設備中隱藏起來。這可能是由於摩托羅拉對Eclair所做的更改造成的一個錯誤,因爲它不會在其他運行Eclair的設備上發生,也不會與運行Froyo的Droid相同。

1

按照docs

Android電子市場試圖通過檢查申報等元素來發現應用程序的隱含功能 要求清單 文件,具體來說,<使用權限>元素。

鑑於此,您是否嘗試刪除uses-feature標籤?由於這些是使用權限標籤implied,並且您沒有使用「android:required」屬性。

+1

'android:required'默認爲true,所以它不應該在這裏設置。 – CrackerJack9

相關問題