从另一个推出一个应用程序

时间:2014-07-03 08:54:12

标签: android xamarin.android

我试图在MonoDroid中从另一个启动一个单声道应用程序。

以下是试图接收意图的活动

[Activity(ScreenOrientation=ScreenOrientation.Portrait, Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true, Icon = "@drawable/icon")]
[IntentFilter(new[] { Intent.ActionView, Intent.CategoryLauncher })]
public class SplashScreenActivity

这是创建应该启动其他应用程序的通知的类。

 var notification = new Notification(2130837697,
                notificationBodyText,
                System.Environment.TickCount);

 Intent i = new Intent("android.intent.action.MAIN");
 i.SetComponent(ComponentName.UnflattenFromString("com.myapp.wahoo"));
 i.AddCategory(Intent.CategoryLauncher);
 i.AddFlags(ActivityFlags.NewTask);

 PendingIntent contentIntent = PendingIntent.GetActivity(Application.Context, 0, i, 0);
        notification.SetLatestEventInfo(Application.Context,
                "",
                notificationBodyText,
                contentIntent);

 var nm = (NotificationManager)Application.Context.GetSystemService(Application.NotificationService);
        nm.Notify(2131099716, notification);

应用程序选择器出现时没有我的应用程序在那里。我认为我的IntentFilters不正确,但我不确定它们应该是什么?理想情况下,它将是一个自定义过滤器,以便它立即启动。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我用下面的意图替换了Intent,它运行良好。

Intent i = Application.Context.PackageManager.GetLaunchIntentForPackage("com.myapp.wahoo");

答案 1 :(得分:0)

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(LaunchIntent);

当我在自己创建的两个应用程序之间进行测试时,这对我很有用。一旦我知道软件包名称将始终有效,或者是否有办法阻止某人启动您的应用程序