Xamarin.Forms 依赖服务 ActivityNotFoundException: 未找到 Activity 处理 Intent

Xamarin.Forms Dependency Service ActivityNotFoundException: No Activity found to handle Intent

我正在使用 Xamarin.Forms 依赖服务在我的 PCL 中进行 phone 调用。

方法本身是:

 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");

使用它抛出

Android.Content.ActivityNotFoundException: No Activity found to handle Intent

同样的方法在其他服务上使用时完全正常(通过 Xamarin.Mobile 进行地理定位)

建议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:

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

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

我知道我正在复活一个死线程,但我花了将近 2 天的时间试图解决这个问题。

我几乎每次搜索都会出现这个话题,所以我认为把它放在这里是合理的。

不要忘记将 Intent 包装在选择器中。

例如:

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