【发布时间】:2020-08-14 02:48:23
【问题描述】:
有没有办法获取 Android 或 iOS 的手机供应商?
谢谢。
【问题讨论】:
-
我正在寻找 C# / Xamarin.Forms 解决方案。
-
Xamarin 使用本机平台 API,因此您应该能够将它们翻译成 C# 并在 DependencyService 中实现它们
标签: c# xamarin.forms
有没有办法获取 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;
}
}
}
请在AndroidManifest.xml中添加android.permission.READ_PHONE_STATE权限
在iOS中实现ICellphoneProvider接口。
[assembly: Dependency(typeof(CellPhoneProvideService))]
namespace Xaminals.iOS
{
class CellPhoneProvideService : ICellphoneProvider
{
public string GetCellphoneProvider()
{
using (var info = new CTTelephonyNetworkInfo())
{
return info.SubscriberCellularProvider.CarrierName;
}
}
}
}
【讨论】: