我已经用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/中的示例启动地图应用程序,我会收到相同的消息。
答案 0 :(得分:0)
嗯,我刚刚开始工作,但不是通过更改代码。开发机器的当前日期和时间是错误的,一旦我纠正它,它就开始工作了!
答案 1 :(得分:0)
我必须使用 Intent 解决,该 Intent 尝试使用 PackageManager 类启动您想要的包,只需:
Intent intent = PackageManager.GetLaunchIntentForPackage("com.company_name.app_name");
StartActivity(intent);
不要忘记将“com.company_name.app_name”替换为您要运行的应用程序包的名称。如果未安装应用程序包会引发异常,那么您可以要求用户安装该应用程序,打开 Play 商店等等。