Xamarin Forms如何知道当前何时进行通话

时间:2018-09-18 12:06:19

标签: android xamarin.forms phone-call

我正在为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);
}

拨打该号码的代码有效,但这是条件语句/代码,用于检查我遇到问题的电话状态。请有人帮忙。抱歉,如果您需要更多信息。请让我知道,我会提供。谢谢。

1 个答案:

答案 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;
        }
    

在查询的情况下还原

相关问题