从Xamarin的应用程序启动应用程序

时间:2015-09-09 09:13:34

标签: c# android mobile xamarin xamarin.forms

我已经用Xamarin编写了两个应用程序:CallerApp和CalleeApp。如果单击CallerApp中的按钮,则应启动CalleeApp(如果尚未启动)并且可见。

在CalleeApp的MainActivity之上,我已经将意图定义为:

 [IntentFilter(new [] { Intent.ActionView }, DataScheme="abcdef", Categories=new[] { Intent.CategoryDefault, Intent.CategoryBrowsable })]
 public class MainActivity : global::Xamarin.Forms.Platform.FormsApplicationActivity
 {
      ...
 }

在CallerApp中,单击该按钮时,我会:

 var intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse(abcdef://));
 Forms.Context.StartActivity(intent);

然后我运行CalleeApp,然后将其部署在设备上并启动。 然后我运行CallerApp,然后将其部署在设备上并启动。 如果我然后单击按钮,我会收到消息:"没有应用程序可以执行此操作"。

有谁知道我在这里做错了什么?

注意:如果我尝试按照http://developer.xamarin.com/recipes/android/fundamentals/intent/launch_the_map_application/中的示例启动地图应用程序,我会收到相同的消息。

2 个答案:

答案 0 :(得分:0)

嗯,我刚刚开始工作,但不是通过更改代码。开发机器的当前日期和时间是错误的,一旦我纠正它,它就开始工作了!

答案 1 :(得分:0)

我必须使用 Intent 解决,该 Intent 尝试使用 PackageManager 类启动您想要的包,只需:

Intent intent = PackageManager.GetLaunchIntentForPackage("com.company_name.app_name");
StartActivity(intent);

不要忘记将“com.company_name.app_name”替换为您要运行的应用程序包的名称。如果未安装应用程序包会引发异常,那么您可以要求用户安装该应用程序,打开 Play 商店等等。