从Windows应用商店C#WinRT拨打电话

时间:2016-10-03 10:08:41

标签: c# windows-runtime windows-store-apps win-universal-app phone-call

我正在使用C#中的WinRT开发Windows应用商店应用。

我想创建一个用户可以点击/点按的按钮或链接,并使用该设备的默认应用来拨打电话。

更好的是,如果用户可以选择要使用的应用程序(如果安装了多个应用程序),那也会很好。

我正在寻找类似于如何从网络浏览器点击tel://01234567890链接的行为,浏览器将其关闭到手机/设备,以便用户可以拨打电话。

考虑到这一点 -

  • 在手机上,它往往是手机应用,或选择是否有多个可以拨打电话的应用

  • 在安装了可以拨打电话的应用程序(例如Skype)的PC上,单击tel://链接会默认打开它(浏览器通常会事先询问)

到处搜索我已经找到了Windows Phone 8.1的所有内容。但在Win 8 / 8.1中使用Windows RunTime的Windows Store应用程序没有任何内容。

请注意:我不是专门希望通过应用中拨打电话,更多是打开设备的默认应用使用。但是,我对选项持开放态度,所以如果还有一种方法可以在应用程序中执行此操作,我也会考虑这一点。

这可能吗?我可能需要API或库吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我设法提出了一个解决方案,以便在问题中获得所描述的行为。

我使用了相同的tel://"链接"我在问题中谈到的概念。

我提出的解决方案:

  • 创建URI
  • 从应用
  • 启动它
  • 然后设备处理打开URI;询问必要时使用哪个应用

这就像一行一样简单:

private async Task MakePhoneCall(string phoneNumber)
{
    await Launcher.LaunchUriAsync(new Uri($"tel://{phoneNumber}"));
}

Launcher命名空间(Windows.System)中找到using Windows.System;静态类。

希望将来可以帮助其他人:)

答案 1 :(得分:0)

@Geoff有一个很好的答案,我有另一个。

您可以使用PhoneCallManager在设备移动时呼叫,并在设备为PC时使用Skype呼叫。

如果该设备是移动设备,您可以使用Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI拨打该号码。并且已选中该设备是否可以移动。

if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
{
    Windows.ApplicationModel.Calls.PhoneCallManager
           .ShowPhoneCallUI("The number you call",
                            "The pople's name that is the number ower");
}

就像http://jycloud.9uads.com/web/GetObject.aspx?filekey=c0df6586a5d486d0ce7cd9447fd75f59

一样

使用时,应包括Windows Mobile Extensions

http://jycloud.9uads.com/web/GetObject.aspx?filekey=9913efb448c7510d822e4c6dcc570c55

如果您的设备是个人电脑,您也可以使用Skype拨打电话。

private async void Button_OnClick(object sender, RoutedEventArgs e)   
{
    Uri url=new Uri(@"Skype:number?call");
    var areSkypeCall = await Windows.System.Launcher.LaunchUriAsync(url);
    if (areSkypeCall)
    {
        //Success
    }
}

Uri的格式是" Skype:" + number +"?call"或者" Skype:" + skype id +"?call"。

http://jycloud.9uads.com/web/GetObject.aspx?filekey=9913efb448c7510d822e4c6dcc570c55

请参阅UWP use skype to call number