2012-03-28 8 views
2

Dies ist mein Abschnitt Berechtigungen meines manifest:Installer zeigt nicht alle Berechtigungen Ich bitte (Android)

<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> 

Aber wenn ich versuche, das Paket zu installieren, die wizzard nur auf das Internet zeigt und schreiben External Speicherberechtigungen

Die DDMS Perspektive wirft diese Warnmeldung, wenn ich die Anwendung zu installieren:

03-28 10: 48: 36,627: warn/Packagemanager (144): Nicht android.permission.INSTALL_PACKAGES Erlaubnis gewähren zu verpacken com.adelco.ventamovil (Protection = 3 flags = 0xbe44)

03-28 10: 48: 36,627: WARN/Package (144): keine Erlaubnis gewähren android.permission.DELETE_PACKAGES com.adelco.ventamovil zu verpacken (protectionLevel = 3 Flags = 0xbe44)

Was passiert hier ....?

Danke !!

Antwort

4

Sorry,

installieren, löschen Pakete sind Systemberechtigungen. Sie können sie nur erhalten, wenn Ihre App mit dem Plattformzertifikat des Geräts signiert ist (was nur möglich ist, wenn Sie Zugriff auf das Signaturzertifikat des Herstellers haben).

Wie Sie sich vorstellen können, wäre das ein ernsthaftes Sicherheitsproblem, wenn eine beliebige Anwendung automatisch andere Anwendungen installieren könnte.

Das Beste, was Sie tun können, ist, den Benutzer auf die Paketinstallationsseite zu senden und sie zu veranlassen, Maßnahmen zu ergreifen, wenn sie es wünschen. Schauen Sie sich auf diese Aktion Absicht Sie senden können, um diesen Prozess zu starten für die Installation,

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

und für die Deinstallation,

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

-1

Haben Sie Ihre Berechtigungen so gesetzt?

<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

Yeah ... Ich füge die Kopfzeile des Manifests zum Beispielcode hinzu ... – Desenfoque

3

INSTALL_PACKAGES und DELETE_PACKAGES sind entweder in der Gruppe signature oder signatureOrSystem und kann somit nicht zu einer „normalen“ App gewährt:

Eine Erlaubnis, die das System gewährt nur für Anwendungen, die im Android-System Bild sind oder die mit den gleichen Zertifikaten wie die im System angemeldet ist image

Siehe android:protectionLevel.

+0

Warte ... Aber es funktionierte ok bis gestern ... Und es sollte im Emulator funktionieren? – Desenfoque

+0

@Desenfoque was meinst du genau mit "es hat funktioniert"? Sie könnten Pakete installieren oder entfernen? Das kann ich kaum glauben. Es müsste nur im Emulator funktionieren, wenn das Signaturzertifikat dort enthalten wäre, aber das bezweifle ich. – Leo

Verwandte Themen