我正在研究xamarin.forms。我需要获取电话号码,如果设备是双卡,那么我需要得到这两个号码。我该如何实现这一目标?在提到我来到这里之后,有很多与此相关的问题。
我在shard项目中创建了一个接口,并在android项目中实现了接口。 android.permission.READ_PHONE_NUMBERS
在共享项目中创建接口
public interface IDeviceInfo
{
string GetMyPhoneNumber();
}
在android项目中实现了接口
public string GetMyPhoneNumber()
{
try
{
TelephonyManager mgr =
Android.App.Application.Context.GetSystemService(Context.TelephonyService) as TelephonyManager;
return mgr.Line1Number;
}
catch (Exception ex)
{
throw;
}
}
在其中一个Button上单击共享项目
private void GetPhone_Clicked(object sender, EventArgs e)
{
try
{
var data = DependencyService.Get<IDeviceInfo>().GetMyPhoneNumber();
}
catch (Exception ex)
{
throw;
}
}
当我使用android 5时,它返回空字符串,如果我使用的是android 6+,它会给出权限错误,如Java.Lang.SecurityException:getLine1NumberForDisplay:既不是用户10286也不是当前进程hasandroid.permission.READ_PHONE_STATE,android.permission。 READ_SMS或android.permission.READ_PHONE_NUMBERS
如何在所有Android版本中解决这个问题?