我正在使用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进行地理定位)
答案 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"));