【问题标题】:How to get user's phone number in .NET MAUI如何在 .NET MAUI 中获取用户的电话号码
【发布时间】:2022-12-16 06:50:01
【问题描述】:

我想使用 .Net Maui 获取用户的电话号码,只在 Android 中使用了一段时间。 我看到有人说只有用户设置自己的电话号码才有可能 设置 -> 关于手机 -> 状态 -> 我的电话号码。

但这不是更好的方法。感谢您阅读本文,我将不胜感激任何帮助。

【问题讨论】:

  • 在 xamarin android 中,您可以使用 TelephonyManager(您可以尝试在 maui 中做同样的事情),IOS 保护该数据,所以最简单的方法 (INMO) 是询问用户的电话号码一次(例如电报)
  • “我想获取用户的电话号码”- 这是假设手机确实知道。它要求电话号码明确存储在 SIM 卡上,但通常情况并非如此。移动电话不需要知道其电话号码即可运行。

标签: c# android maui .net-maui maui-blazor


【解决方案1】:

我在 Xamarin Forms 中对此有一个答案。让我们也为毛伊岛做同样的事情。

对于 iOS,这是不可能的,即使您以某种方式使用 CoreTelephony 或其他方式获得它,您的应用程序也会因以下问题而被苹果商店部署拒绝,如 Dylan here 所述:

“出于安全原因,iPhone OS 将应用程序(包括其首选项和数据)限制在文件系统中的唯一位置。此限制是称为应用程序“沙箱”的安全功能的一部分。沙箱是一组精细的 -粒度控制限制应用程序对文件、首选项、网络资源、硬件等的访问。”

该设备的电话号码在您的应用程序容器中不可用。您需要将您的应用程序修改为仅在您的目录容器中读取,然后将您的二进制文件重新提交到 iTunes Connect,以便您的应用程序重新被 App Store 考虑。

现在对于 Android,您可以使用 TelephonyManager 方法来获取电话号码,但据我所知,这不是一种可靠的方法,因此它不会从 SIM 详细信息或从中获取电话号码您在手机启动时输入的设备信息 存在对其的解释 here

另外,这里有个重要评论好像是relevant

其实,并没有那么完美。上次我尝试这种方法时,它报告了我的手机原来的电话号码,然后才将我的旧手机号码移植到它上面。它可能仍然存在,因为“设置”应用程序仍然显示该失效号码。此外,有报告称某些 SIM 会导致此方法返回 null。话虽这么说,我不知道更好的答案。

即使这在某种程度上对您来说没问题,您也只能使用它获得一个电话号码,如果您的用户未在手机设置中配置,则该电话号码大多数时候将为空。

可能的解决方案(仅当您问我时)

解决这两个问题的方法是,根据您的方便创建一个类似弹出窗口或页面的屏幕,要求用户自己输入电话号码(如果必须一起制作模态页面)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-18
    • 2011-05-30
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2014-07-19
    • 1970-01-01
    相关资源
    最近更新 更多