2012-03-28 5 views
2

私は(アンドロイド)を要求するすべての権限を示していない。インストーラはこれが私のマニフェストの権限の私の部分である

<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はインターネットのみを表示し、外部を書きますストレージのアクセス許可。

DDMSパースペクティブは、私がアプリケーションをインストールすると、この警告メッセージをスローします:

3月28日10:48:36.627を:(144)/ PackageManagerをWARN: は、パッケージ化するために許可android.permission.INSTALL_PACKAGESを付与されません com.adelco.ventamovil(のProtectionLevel = 3つのフラグ= 0xbe44)

3月28日10:48:36.627:WARN/PackageManager(144):許可をcom.adelco.ventamovilをパッケージ化する android.permission.DELETE_PACKAGESを付与されません (protectionLevel = 3 flags = 0xbe44)

ここで何が起こっているのですか?

ありがとうございます!

答えて

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

あなたはそのようなアクセス許可を入れましたか?

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

ええと...サンプルコードにマニフェストのヘッダを追加しています... – Desenfoque

3

INSTALL_PACKAGESDELETE_PACKAGES、インストールのために、このプロセスを開始するために送信することができ、この行動の意図を見てみましょうグループsignatureまたはのいずれかにある

システムがAndroidシステムイメージ内にあるか、システム内のものと同じ証明書で署名されているアプリケーションにのみ許可する許可です。画像

android:protectionLevelを参照してください。

+0

待っています...しかし、それは昨日までうまくいきました...そしてそれはエミュレータで動作するはずですか? – Desenfoque

+0

@Desenfoque "それは働いた"とはどういう意味ですか?パッケージをインストールまたは削除できますか?私はほとんどそれを信じることができません。署名証明書がそこに含まれているのであれば、エミュレータで作業しなければならないだろうが、私はそれを疑う。 – Leo

関連する問題