如何获得xamarin表格中的电话号码?

问题描述 投票:7回答:1

我正在研究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版本中解决这个问题?

c# xamarin xamarin.forms xamarin.android telephonymanager
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.