我正在为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);
}
拨打该号码的代码有效,但这是条件语句/代码,用于检查我遇到问题的电话状态。请有人帮忙。抱歉,如果您需要更多信息。请让我知道,我会提供。谢谢。
答案 0 :(得分:0)
在本机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;
}
在查询的情况下还原