【问题标题】:Make Phone Call Directly Xamarin.Forms直接拨打电话 Xamarin.Forms
【发布时间】:2016-02-26 02:49:43
【问题描述】:

有没有在xamarin.forms中不打开拨号器直接拨打电话?

 if (device.PhoneService != null) {
    Device.OpenUri(new Uri("tel:123123123"));
 }

【问题讨论】:

  • 你看过 XLabs 吗?有一个 PhoneCallTask​​ 可以做你想在这里看到的:github.com/XLabs/Xamarin-Forms-Labs/blob/master/src/Platform/…
  • @loangburger 这正是我使用的。但它显示拨号器。
  • 如果您请求android.permission.CALL_PHONE 清单权限,您可以通过使用Intent.ACTION_CALL 的活动在Android 上传递拨号程序,但iOS 不允许这样的事情,您将获得拨号程序。
  • 我应该如何在 Xamarin.Forms 中使用 INTENT??

标签: c# xamarin xamarin.forms


【解决方案1】:

当我们编写代码以启动语音通话时,我们必须注意 Xamarin.Forms 中的 DependencyService

Xamarin.Forms 中的 DependencyService 提供对来自 PCL 或共享项目的 iOS、Android 和 Windows Phone SDK 的本机功能和一些特定于平台的实现的访问。

要开始语音通话,有一些特定于平台的实现和权限。

  1. 以下是在 Xamarin.Forms 中实现语音呼叫的过程。让我们创建一个 ContentPage,其中包含一个条目和一个按钮作为 HomePage.cs。


(来源:netdna-cdn.com

  1. 在共享代码中创建一个接口 IPhoneCall.cs,显示我们打算实现的功能。


(来源:netdna-cdn.com

  1. 接口必须在每个特定于平台的应用程序项目中实现。

Android 实现:在Android 中实现接口之前不要忘记在AndroidManifest.xml 中设置一些权限。在 Android 中调用语音呼叫需要这些权限。


(来源:netdna-cdn.com

设置权限后,我们必须使用一个小类PhoneCall_Droid.cs来实现接口。


(来源:netdna-cdn.com

Refer Sample for iOS & Windows Implementation.

  1. 我们已经完成了接口的实现和每个特定平台的注册。现在我们可以编写 DependencyService 来获取接口的实例。


(来源:netdna-cdn.com


示例:http://www.c-sharpcorner.com/UploadFile/e4bad6/code-to-start-call-in-xamarin-forms


【讨论】:

    【解决方案2】:

    只需使用消息传递插件从共享代码中执行此操作。效果很好:https://github.com/cjlotz/Xamarin.Plugins

    【讨论】:

    【解决方案3】:

    当您拨打电话时,设备始终会显示拨号器,以便用户可以挂机、切换到蓝牙设备、静音等 - 这就是在移动设备上启动拨号器的方式。在 iOS 上通话结束后,用户仍会在您的应用中,下面的这个问题讨论了如何在通话结束后将用户带回您在 Android 上的应用:

    How to make a phone call in android and come back to my activity when the call is done?

    【讨论】:

      猜你喜欢
      • 2019-05-16
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多