首页 > 解决方案 > Xamarin.Forms - 获取 Android 和 ios 的手机提供商

问题描述

有没有办法获得适用于 Android 或 iOS 的手机提供商?

谢谢。

标签: c#xamarin.forms

解决方案


同意 Jason,可以使用dependencyService 来实现。

首先,在 PCL 中创建一个接口。

    public  interface ICellphoneProvider
    {
        string GetCellphoneProvider();
    }

与以下代码一起使用

string phoneProvider =DependencyService.Get<ICellphoneProvider>().GetCellphoneProvider();

在Android中实现ICellphoneProvider界面。

[assembly: Dependency(typeof(CellPhoneProviderService))]
namespace Xaminals.Droid
{
    class CellPhoneProviderService : ICellphoneProvider
    {
        public string GetCellphoneProvider()
        {
            Android.Telephony.TelephonyManager manager = (Android.Telephony.TelephonyManager)Android.App.Application.Context.GetSystemService(Context.TelephonyService);
            string carrierName = manager.NetworkOperatorName;
            return carrierName;

        }
    }
}

请添加android.permission.READ_PHONE_STATE权限AndroidManifest.xml

在iOS中实现ICellphoneProvider界面。

[assembly: Dependency(typeof(CellPhoneProvideService))]
namespace Xaminals.iOS
{
    class CellPhoneProvideService : ICellphoneProvider
    {
        public string GetCellphoneProvider()
        {

            using (var info = new CTTelephonyNetworkInfo())
            {
                return info.SubscriberCellularProvider.CarrierName;
            }
        }
    }
}

推荐阅读