如何创建可用的ApnSetting对象?调用Build返回null该如何解决?
解决方案
核心原因
Build()返回null确实是因为缺少必填的apnTypeBitmask参数导致的,你使用的是.NET for Android(原Xamarin.Android)的平台绑定API,原生方法的命名在C#环境下做了规范调整,你要找的设置方法实际存在。
修复代码示例
using var apn = new ApnSetting.Builder(); apn.SetEntryName("APN name"); apn.SetApnName("some.apn"); // 按需求配置APN类型位掩码,多个类型可通过按位或组合 apn.SetApnTypeBitmask(ApnType.Default | ApnType.Mms | ApnType.Supl); var test = apn.Build();
兼容处理
如果你使用的绑定库版本较低,找不到SetApnTypeBitmask方法或者ApnType枚举,可以直接传入对应类型的整数值:
- 默认上网类型(Default)对应值:1
- 彩信类型(MMS)对应值:2
- 定位辅助类型(SUPL)对应值:4
- 热点类型(DUN)对应值:8
- 高优先级类型(HIPRI)对应值:16
比如仅需要默认上网能力,直接写apn.SetApnTypeBitmask(1);即可完成配置,再调用Build()就可以正常生成ApnSetting对象。
内容的提问来源于stack exchange,提问作者Hubo
相关产品推荐
相关产品推荐

