German B4A 6.30 apk Installation

DonManfred

Expert
Licensed User
Longtime User
Packagemanager
 

peternmb

Well-Known Member
Licensed User
Longtime User
Noch eine (hoffentlich) letzte Frage von mir zu diesem Thema:
Kann ich, nachdem meine App installiert wurde diese automatisch starten?
B4X:
Dim i As Intent
i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(oDir, "XY.apk"))
i.SetType("application/vnd.android.package-archive")
StartActivity(i)
 

DonManfred

Expert
Licensed User
Longtime User
Du weisst ja noch gar nicht, ob die Installation wirklich durchgeführt wurde.

Wenn Du wieder in der installierenden app bist kannst du den packagemanager benutzen um rauszufinden, ob diese app inzw. installiert ist.
Wenn ja, dann kannst du die app starten. Wenn nicht, dann wurde die installation abgebrochen oder abgelehnt.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Ich habe mich etwas unglückllich ausgedrückt ;-)

Wenn ich ein Update in einer vorhandenen App herunterlade installiere passiert nach der Installation nichts mehr.
Ich möchte, dass die App dann gestartet wird - ich meine das wäre früher (in einer älteren App-Version von mir) so gegangen.-
 

DonManfred

Expert
Licensed User
Longtime User
passiert nach der Installation nichts mehr
Ist nicht ganz korrekt. Wenn du mit dem Broadcast receiver "lauchst" dann bekommst Du die installation mit. Ansonsten passiert dann aber nichts, das ist richtig aber auch so gewollt seitens Android.
Ich möchte, dass die App dann gestartet wird
Dann musst Du in deiner App halt hingehen und mit dem Packagemanager nachgucken, ob die App installiert ist. Und dann eben die app starten. Android startet die App nicht automatisch.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Der Packagemanager liefert dir ein starting intent für jede app. Benutze dieses starting intent um die App zu starten.
Wenn ich den Code direkt aus dem Hilfebeispierl verwende erhalte ich eine Fehlermeldung bei der ich nicht weiterkomme:
B4X:
Dim in As Intent
Dim pm As PackageManager
in.Initialize("","")
in = pm.GetApplicationIntent("com.google.android.youtube")

If in.IsInitialized Then StartActivity(in)
StartActivity(in)

Object should first be initialized (intent).
Aber das ist doch initialisiert???
 
Last edited:

peternmb

Well-Known Member
Licensed User
Longtime User
Mit einer anderen App funktioniert es, anscheinend ist auf dem Testgerät youtube nicht installiert.

Sollte aber dann keine Fehlermeldung kommen wenn die aufgerufenen App nicht installiert ist?
 

peternmb

Well-Known Member
Licensed User
Longtime User
probier mal ein
B4X:
log(pm.GetApplicationIntent("com.google.android.youtube"))

Wenn das null liefert, dann abfrage auf null dabei packen um die fehlermeldung zu umgehen

Ich habe s jetzt so gemacht, das funktioniert ebenfalls problemlos:
B4X:
Dim in As Intent
Dim pm As PackageManager
in.Initialize("","")
in = pm.GetApplicationIntent("com.google.android.youtube")
'
Try
  If in.IsInitialized Then StartActivity(in)
  StartActivity(in)
Catch
  Msgbox("App ist anscheinend nicht installiert.","Hinweis")
End Try

Vielen Dank für die Hilfe und die Hinweise.
 
Top