Xamarin.Forms依赖关系服务ActivityNotFoundException:找不到处理Intent的Activity

时间:2015-04-30 08:52:07

标签: android xamarin xamarin.ios xamarin.android xamarin.forms

我正在使用Xamarin.Forms依赖服务在我的PCL中拨打电话。

方法本身是:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  PageControl1->SelectNextPage(true, false);
}

方法调用:

 public void Call(string number)
        {
                var uri = Android.Net.Uri.Parse(number);
                var intent = new Intent(Intent.ActionView, uri);
                Forms.Context.StartActivity(intent);
        }

使用它抛出

        DependencyService.Get<IPhoneDialler>().Call("+447836726414");

当在另一个服务上使用时,相同的方法完全正常(通过Xamarin.Mobile进行地理定位)

2 个答案:

答案 0 :(得分:2)

建议2:

调整您的通话方法以使用Intent.ACTION_DIAL

public void Call(String number){
    Intent intent = new Intent(Intent.ACTION_DIAL);
    intent.setData(Uri.parse("tel:"+number));
    Forms.Context.StartActivity(intent)
}

[1] http://developer.android.com/reference/android/content/Intent.html

建议1:

您是否在类之上(以及已定义的任何名称空间之外)有[assembly]属性

[assembly: Xamarin.Forms.Dependency (typeof (IPhoneDialler))]

答案 1 :(得分:0)

我知道我正在复活一个死去的线程,但我花了差不多2天试图解决这个问题。

这个帖子几乎出现在我所做的所有搜索中,所以我觉得把它放在这里是合理的。

不要忘记将你的意图包装在选择器中。

例如:

        Forms.Context.StartActivity(Intent.CreateChooser(email, "Send Email"));