应用程序需要您的设备上没有的功能

时间:2011-08-30 13:39:15

标签: android motorola motorola-droid android-2.0-eclair

我在Android电子市场上有一个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" />

3 个答案:

答案 0 :(得分:2)

我终于通过获取Droid设备并运行logcat来了解发生了什么:

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

运行Eclair的Motorola Droid设备无法安装声明

的应用程序
<uses-feature android:name="android.hardware.telephony" />

在他们的清单中。但这很奇怪,因为Android Market应该将它隐藏在这些设备之外。这可能是由摩托罗拉对Eclair所做的更改造成的错误,因为运行Eclair的其他设备不会发生这种错误,也不会使用同样的Droid运行Froyo。

答案 1 :(得分:1)

根据docs

  

Android Market尝试发现应用程序的隐含功能   通过检查清单中声明的​​其他元素的要求   文件,特别是&lt; uses-permission&gt;元件。

鉴于此,您是否尝试删除uses-feature标记?由于使用权限标记为implied,并且您没有使用“android:required”属性。

答案 2 :(得分:1)

当我安装从Play商店下载的应用程序且必须授予其权限时,设备说“此设备无法使用此功能”