获取 Android、IOS 和 Windows Phone 的电话号码

Posted

技术标签:

【中文标题】获取 Android、IOS 和 Windows Phone 的电话号码【英文标题】:Fetch phone number for Android, IOS and Windows Phone 【发布时间】:2018-11-09 07:18:08 【问题描述】:

我正在开发一个 Xamarin 表单项目,并希望从设备中获取用户的电话号码。

请任何人指导我如何

请建议是否有任何 nuget 包或第三方库可用。

提前致谢

【问题讨论】:

【参考方案1】:

试试这个

TelephonyManager mTelephonyMgr;

   mTelephonyMgr = (TelephonyManager)GetSystemService(TelephonyService);

   var Number = mTelephonyMgr.Line1Number;

来源:Xamarin Forum

确保在清单中添加ReadPhoneState 权限

【讨论】:

这仅适用于 android。我猜 Windows Phone 和 ios 在获取用户电话号码方面有一些限制。【参考方案2】:

如何获取 Android、IOS 和 Windows Phone 的电话号码。

对于 Windows Phone,您可以在 Windows Phone 应用程序中获取 SIM MSISDN 和 IMSI 号码。请注意,您应该手动编辑您的应用程序Package.appxmanifest,如下所示:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" 
    xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
    xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
    IgnorableNamespaces="uap mp rescap">

......

<Capabilities>
    <rescap:Capability Name="cellularDeviceIdentity" />
</Capabilities>

您可以使用MobileBroadbandModem 类来获取所有CurrentDeviceInformation。有关更多信息,您可以参考此case reply。请注意,在上述情况下,您不能使用直接回复的代码。您需要在 Xamarin.Forms 库中为 UWP 项目创建 DependencyService

对于 IOS,the short answer 是“不可能”。您必须要求用户手动输入。有私有 API 可以访问用户的电话号码,但 Apple 会拒绝您的应用。

【讨论】:

【参考方案3】:

已经有插件可用,您可以使用 ContactsPlugin 在 Xamarin Forms 中获取联系人号码,

请检查以下链接是否相同。 https://github.com/jamesmontemagno/ContactsPlugin

谢谢

【讨论】:

以上是关于获取 Android、IOS 和 Windows Phone 的电话号码的主要内容,如果未能解决你的问题,请参考以下文章

如何从Windows Phone获取字体文件

Windows 上的 Meteor JS,支持 iOS 和 Android

安卓(Android)如何获取正在运行服务的详细

Android 还是 iOS 用于移动开发?

AngularJS 和 Ionic 用于创建 windows、android 和 iOS 混合应用程序

创建 xamarin 跨平台移动应用程序(android、ios 和 windows)的步骤