从我的应用程序启动Android视频应用程序

时间:2017-04-17 14:25:27

标签: c# android xamarin

我正在尝试为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”在最重要的应用程序之间切换,使用硬键代替触摸屏。

1 个答案:

答案 0 :(得分:0)

我更愿意避免硬编码任何软件包名称,因为这样做会导致代码在不同的API和不同供应商的ROM上中断,因为它们包含自己的"播放器"和#34;观众"。

您可以通过使用程序包管理器并对其进行查询来确定将安装哪些程序包以响应不同的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);
}