安装程序未显示我请求的所有权限(Android)

时间:2012-03-28 14:01:12

标签: android permissions android-manifest

这是我的清单权限部分:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.adelco.ventamovil"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.DELETE_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

但是当我尝试安装软件包时,wizzard只显示Internet和写入外部存储权限。

安装应用程序时,DDMS透视图会抛出此警告消息:

  

03-28 10:48:36.627:WARN / PackageManager(144):不是   授予android.permission.INSTALL_PACKAGES权限以进行打包   com.adelco.ventamovil(protectionLevel = 3 flags = 0xbe44)

     

03-28 10:48:36.627:WARN / PackageManager(144):未授予权限   android.permission.DELETE_PACKAGES打包com.adelco.ventamovil   (protectionLevel = 3 flags = 0xbe44)

这里发生了什么......?

谢谢!

3 个答案:

答案 0 :(得分:4)

抱歉,

安装,删除包是系统权限。除非您的应用程序使用设备的平台证书进行签名,否则您将无法获得它们(除非您可以访问制造商的签名证书,否则这是不可能的。)

您可以想象,如果任意应用程序可以静默安装其他应用程序,那将是一个严重的安全问题。

您可以做的最好的事情是将用户发送到软件包安装页面,让他们按照自己的意愿采取行动。请查看您可以发送的此操作意图,以启动此安装过程,

  

http://developer.android.com/reference/android/content/Intent.html#ACTION_INSTALL_PACKAGE

和卸载,

  

http://developer.android.com/reference/android/content/Intent.html#ACTION_UNINSTALL_PACKAGE

答案 1 :(得分:3)

INSTALL_PACKAGESDELETE_PACKAGES位于群组signaturesignatureOrSystem中,因此无法授予“普通”应用:

  

系统仅授予Android系统映像中的应用程序或使用与系统映像中的证书相同的证书签名的权限

请参阅android:protectionLevel

答案 2 :(得分:-1)

你是否放了这样的权限?

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.your.package"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />