2016-04-15 2 views
0

starten Ich möchte aus verschiedenen Gründen nicht den Google Play-Mechanismus verwenden, um eine Android-Anwendung zu aktualisieren. Also habe ich beschlossen, ein eigenes System zum Herunterladen und Aktualisieren einer Android-Anwendung zu entwickeln.eine apk in einem android delphi seattle application error

Schritt 1: Laden Sie das Update .apk herunter.

Schritt 2: Legen Sie eine Schaltfläche in der ursprünglichen Anwendung, so dass ein Benutzer darauf klicken kann, um die .apk für das Upgrade zu starten.

Der folgende Code gibt mir einen Fehler.

procedure TfrmUpdateProgram.DoUpgrade; 
    {$IF DEFINED(IOS) or DEFINED(ANDROID)} 
    var Intent : JIntent; 
    {$ELSE} 
    {$ENDIF} 
    begin 
    {$IF DEFINED(IOS) or DEFINED(ANDROID)} 
     Intent := TJIntent.Create; 
     Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); 
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
     Intent.setDataAndType(StrToJURI(newAPKFile), StringToJString('application/vnd.android.package-archive')); 

     SharedActivityContext.startActivity(Intent); 
     Application.Terminate; 

    {$ELSE} 
     ShellExecute(0, PWideChar('Open'), PWideChar(newAPKFile), nil, nil, SW_HIDE); 
    {$ENDIF} 
    end; 

android.content.activitynotfoundexception: Keine Aktivität Absicht behandeln {act = android.intent.action.view dat =/storage ..... update.apk typ = application/vnd.android .package-archive flg = 0x1000000}

Irgendwelche Gedanken?

+0

Intents sind eine Nur-Android-Funktion, sie existieren nicht in iOS, daher müssen Sie einen anderen Code verwenden, wenn 'DEFINED (IOS)' wahr ist. –

+0

Zugehörig: [Anwendung programmgesteuert unter Android installieren] (http://stackoverflow.com/questions/4604239/) –

Antwort

0

Versuchen Sie, den Anruf zu Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK) zu entfernen, es ist nicht unbedingt erforderlich.

Stellen Sie sicher, dass die Datei .apk vor dem Starten der Intent vollständig lesbar ist, es sei denn, Sie speichern sie in einem öffentlichen externen Ordner. Und stellen Sie sicher, dass es über einen file: URI erreichbar ist.

Und stellen Sie sicher, dass Ihr Android-Gerät so konfiguriert ist, dass Apps von unbekannten Quellen installiert werden können.

Verwandte Themen