我正在为Xamarin Forms Android应用程序编写一些代码,该应用程序拨打电话号码,但如果用户当前正在通话,我不想拨号码(无论是传入还是传出,它都没有区别)。我已经研究了很多关于手机状态但我无法找到我要找的东西,除非我错误地应用它。我需要的是这样的:
if (NoCurrentCallIsTakingPlace)
{
var uri = Android.Net.Uri.Parse(string.Format("tel:{0}", PhoneNumber));
var intent = new Intent(Intent.ActionCall, uri);
Xamarin.Forms.Forms.Context.StartActivity(CurrentIntent);
}
拨打该号码的代码有效,但是检查电话状态我是否有问题的条件语句/代码。请有人帮忙。如果您需要更多信息,请道歉。请告诉我,我会提供。谢谢。
那么在原生android中你有电话管理器来检查你设备的状态:
它有三种状态:
var telephonyManagerService = (TelephonyManager)Xamarin.Forms.Forms.Context.GetSystemService(TelephonyService);
var getCurrentState = telephonyManagerService?.CallState;
switch (getCurrentState)
{
case CallState.Idle:
//No call
break;
case CallState.Ringing:
//Ringing
break;
case CallState.Offhook:
//On call
break;
default:
break;
}
在查询时还原