获取 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 上的 Meteor JS,支持 iOS 和 Android