问题描述
var tMgr = (TelephonyManager)Forms.Context.ApplicationContext.GetSystemService(Android.Content.Context.TelephonyService);
return tMgr.Line1Number;
此代码返回 null。
解决方法
首先,我们需要在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;