2017-04-17 5 views
1

Ich versuche eine App für Android 4.0.3 zu erstellen, die auf UDP-Telegramme wartet und andere Apps startet, abhängig von der empfangenen Nachricht.Starten Sie die Android Video App von meiner App

Ich bin bereits in der Lage, einige Anwendungen zu starten, wie die „Music“ App:

Intent intent = new Intent("android.intent.action.MUSIC_PLAYER"); 
intent.SetFlags(ActivityFlags.NewTask); 
context.StartActivity(intent); 

Gibt es eine Chance, das gleiche gilt für das Video-App zu tun? Ich finde keinen gültigen Befehl dafür. (Vor allem ohne definierte Video zu laden, wie Action_View tun würde)

ich auch dachte über die StartApp verwenden, wie folgt aus:

OpenApp(context, "com.google.android.apps.maps"); 

aber ich nicht auch einen gültigen Paket-Namen für das Video finden App, wie die anderen Apps haben.

Hintergrund: Dies ist für ein Auto-Projekt. Das Android-Tablet sollte als Infotainment-System verwendet werden und ich möchte mit einem "Ardoino Leonardo Ethernet" zwischen den wichtigsten Apps wechseln, mit Hilfe von Tasten anstelle des Touchscreens.

Antwort

0

Ich bevorzuge es, die Codierung von Paketnamen zu vermeiden, da dies dazu führt, dass der Code auf verschiedenen APIs und ROMs anderer Hersteller bricht, da sie ihre eigenen "Player" und "Viewer" enthalten.

Sie können bestimmen, welche Pakete diesen Willen Reaktion auf verschiedene Uri und Mime-Typen installiert sind, indem Sie den Paket-Manager und eine Abfrage, um es zu machen, das heißt

var activityIntent = new Intent(Intent.ActionView); 
activityIntent.SetDataAndTypeAndNormalize(Uri.Parse("pseudo.mp4"), "video/mp4"); 
var resolvedActivityList = PackageManager.QueryIntentActivities(activityIntent, PackageInfoFlags.MatchAll); 
foreach (var info in resolvedActivityList) 
{ 
    Log.Debug("SO", info.ActivityInfo.ApplicationInfo.PackageName); 
} 
+0

Hm, das ist eine Idee. Sadfully ony Gibt "com.archos.mediacenter" in meinem Fall zurück Und das ist eine Musik/Video App, die standardmäßig als "Musik" startet. Scheint, ich muss etwas wie com.archos.mediacenter.video.Browser.BrowserActivityVideo anrufen, um direkt zu Video zu gehen, aber ich weiß nicht, wie das geht (muss einige Recherchen in dieser Richtung machen) –

+0

Ich habe herausgefunden, wie es geht : 'intent.SetClassName (" com.archos.mediacenter "," com.archos.mediacenter.video.Browser.BrowserActivityVideo ");' –

Verwandte Themen