c# - Xamarin.Forms - 获取 Android 和 ios 的手机提供商
问题描述
有没有办法获得适用于 Android 或 iOS 的手机提供商?
谢谢。
解决方案
同意 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;
}
}
}
}
推荐阅读
- r - 如何找到单调的答案模式
- python - 在 Python 3 中模糊得分前 N?
- c# - 是否可以将表单添加到 TreeView?
- amazon-web-services - 无法通过 Terraform 对 Digital Ocean Kubernetes 进行身份验证
- python - 检查熊猫数据框的值是否在两个列表之间。添加布尔列
- rust - 为什么 (*x).into() 需要显式取消引用,而 x.my_into() 不需要?
- python - 列出理解 if else 每三个项目重复元素
- sql-server - Oracle XE dg4odbc:无法连接到 SQL Server
- blockchain - 锯齿供应链 /bin/sh: 1: bin/splice_json: 权限被拒绝
- php - 如何使用foreach php停止覆盖数组的问题