C# 从我的应用程序启动android视频应用程序

C# 从我的应用程序启动android视频应用程序,c#,android,xamarin,C#,Android,Xamarin,我正在尝试为Android 4.0.3创建一个应用程序,根据收到的消息监听UDP电报并启动其他应用程序 我已经能够启动一些应用程序,比如“音乐”应用程序: 是否有机会对视频应用程序执行同样的操作? 我找不到有效的命令。(尤其是在不加载已定义视频的情况下,如Action_View) 我还考虑使用StartApp,如下所示: OpenApp(context, "com.google.android.apps.maps"); 但是我也找不到视频应用程序的有效包名,就像其他应用程序一样 背景: 这是

我正在尝试为Android 4.0.3创建一个应用程序,根据收到的消息监听UDP电报并启动其他应用程序

我已经能够启动一些应用程序,比如“音乐”应用程序:

是否有机会对视频应用程序执行同样的操作? 我找不到有效的命令。(尤其是在不加载已定义视频的情况下,如Action_View)

我还考虑使用StartApp,如下所示:

 OpenApp(context, "com.google.android.apps.maps");
但是我也找不到视频应用程序的有效包名,就像其他应用程序一样

背景:
这是一个汽车项目。安卓平板电脑应该用作信息娱乐系统,我想使用“Ardoino Leonardo Ethernet”在最重要的应用程序之间切换,使用硬键而不是触摸屏。

我宁愿避免硬编码任何软件包名称,因为这样做会导致代码在不同的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);
}

我倾向于避免硬编码任何包名,因为这样做会导致代码在不同的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);
}

嗯,这是个主意。Sadfully ony在我的例子中返回“com.archos.mediacenter”,这是一个默认以“Music”开头的音乐/视频应用程序。似乎我必须调用com.archos.mediacenter.video.browser.BrowserActivityVideo这样的东西才能直接进入视频,但我不知道怎么做(必须在那个方向做一些记录),我发现了怎么做:
intent.SetClassName(“com.archos.mediacenter”,“com.archos.mediacenter.video.browser.BrowserActivityVideo”)嗯,这是个主意。Sadfully ony在我的例子中返回“com.archos.mediacenter”,这是一个默认以“Music”开头的音乐/视频应用程序。似乎我必须调用com.archos.mediacenter.video.browser.BrowserActivityVideo这样的东西才能直接进入视频,但我不知道怎么做(必须在那个方向做一些记录),我发现了怎么做:
intent.SetClassName(“com.archos.mediacenter”,“com.archos.mediacenter.video.browser.BrowserActivityVideo”)