最近我尝试在Visual Studio 2017中使用Xamarin学习android编程 我写了一个简单的应用程序,可以打电话,但是当我点击“呼叫按钮”时,几天前就给出了这个执行错误,但是现在我能收到这个错误 我确实在清单文件中获得了CALL_PHONE的许可 原谅我英语不好 如果有人知道如何解决此问题,请告诉我病了 这是我的代码.cs
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Content;
namespace Dialer.app
{
[Activity(Label = "Dialer.app", MainLauncher = true)]
public class MainActivity : Activity
{
Button btnCall;
ListView txtViewNumbers;
EditText txtUnumber;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
btnCall = FindViewById<Button>(Resource.Id.button1);
txtViewNumbers = FindViewById<ListView>(Resource.Id.listView1);
txtUnumber = FindViewById<EditText>(Resource.Id.editText1);
string phone = txtUnumber.Text;
btnCall.Click += delegate
{
var callDialog = new AlertDialog.Builder(this);
callDialog.SetMessage("Dial This Number? " + phone);
callDialog.SetPositiveButton("ok", delegate
{
var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse(phone));
StartActivity(callIntent); //i get error in this line
});
callDialog.SetNeutralButton("Cancel", delegate { });
callDialog.Show();
};
}
}
}
答案 0 :(得分:0)
未找到可处理意图的活动{act = android.intent.action.CALL .....
您在电话号码上缺少geth --syncmode "fast" --cache=4096
前缀:
tel:
但是,在最新的API级别中,var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse("tel:" + phone));
StartActivity(callIntent);
是已撤销的权限:
拒绝权限:启动意图{act = android.intent.action.CALL dat = tel:xxx-xxx-xxxx
您需要用户通过系统拨号器接受号码,而不是直接拨打电话号码,而是通过CALL_PHONE
来完成:
ACTION_DIAL