2017-04-17 133 views
1

我正在嘗試爲Android 4.0.3創建一個應用程序,它監聽UDP電報並啓動其他應用程序,具體取決於收到的消息。從我的應用程序啓動Android視頻應用程序

我已經能夠推出像「音樂」應用中的一些應用程序,:

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以太網」在最重要的應用程序之間切換,而不是使用硬鍵而不是觸摸屏。

回答

0

我寧願避免對任何軟件包名稱進行硬編碼,因爲這樣做會導致代碼在不同的API和不同供應商的ROM上分解,因爲它們包含自己的「播放器」和「查看器」。

您可以確定哪些軟件包使用軟件包管理器,使查詢它安裝在將針對不同的URI和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

嗯,這就是一個想法。 令人傷心的ony在我的情況下返回「com.archos.mediacenter」 這是一個音樂/視頻應用程序,默認情況下以「Music」開頭。 似乎我不得不打電話給com.archos.mediacenter.video.browser.BrowserActivityVideo直接去視頻,但不知道怎麼做(必須在那個方向做一些recherches) –

+0

我發現如何做到這一點: 'intent.SetClassName(「com.archos.mediacenter」,「com.archos.mediacenter.video.browser.BrowserActivityVideo」);' –

相關問題