2017-04-17 7 views
1

Android 4.0.3用のアプリケーションを作成しようとしていますが、受信したメッセージに応じてUDP電信を聞き取り、他のアプリを起動します。私のアプリからアンドロイドビデオアプリを起動してください

私はすでに「ミュージック」アプリのように、いくつかのアプリを起動することができています:

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

はビデオアプリのための同じをするチャンスはありますか? 私はそのための有効なコマンドを見つけることはありません。 (特にACTION_VIEWのように、定義されたビデオをロードせずに行うだろう)

は、私はまた、次のように、startappのを使用して考えていた:

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

しかし、私はまた、ビデオのための有効なパッケージ名を見つけるいけません他のアプリと同様に、

背景: これは車のプロジェクトです。 Androidタブレットは、インフォテイメントシステムとして使用する必要があります。私は、タッチスクリーンの代わりにハードキーを使用して、最も重要なアプリを切り替えるために "Ardoino Leonardo Ethernet"を使用します。

答えて

0

パッケージ名をハードコードするのは、異なるAPIやベンダーのROMに独自の「プレーヤー」と「ビューアー」が含まれているため、コードが破損するためです。あなたがパッケージは、パッケージマネージャを使用して、それに問い合わせを行うことによって異なるウリとMIMEタイプへの意志の応答をインストールされているかを決定することができます

、すなわち

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

フム、アイデアのthats。 悲しいことにony私の場合、「com.archos.mediacenter」を返します。 これは、デフォルトで「音楽」として開始する音楽/ビデオアプリです。 ビデオに直接行くためにcom.archos.mediacenter.video.browser.BrowserActivityVideoのようなものを呼び出さなければならないと思われますが、それがどういうことをしているのか分かりません(その方向に動いていなければなりません) –

+0

私はそれをやる方法を見つけました: 'intent.SetClassName(" com.archos.mediacenter "、" com.archos.mediacenter.video.browser.BrowserActivityVideo ");' –

関連する問題