如何在 xamarin 表单注册中获取电话号码

问题描述

var tMgr = (TelephonyManager)Forms.Context.ApplicationContext.GetSystemService(Android.Content.Context.TelephonyService);
     return tMgr.Line1Number;

代码返回 null。

我想在注册生成这种类型的弹出窗口 image

解决方法

首先,我们需要在AndroidManifest.xml

中添加权限
<uses-permission android:name="READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

此外,Forms.Context 在 XF 2.5 之后已过时。所以我们可以使用来自 nuget 的插件 Plugin.CurrentActivity

只需在 MainActivity 中的 OnCreate 上调用 Init 方法

CrossCurrentActivity.Current.Init(this,bundle);

并像下面一样访问它

var tMgr = (TelephonyManager)CrossCurrentActivity.Current.AppContext.GetSystemService(Android.Content.Context.TelephonyService);
 return tMgr.Line1Number;