当前位置: 首页 > news >正文

Android U 软件fota版本后APN更新逻辑

代码逻辑

TelephonyProvider 对APN数据库进行创建和更新。

  1. onCreate() 创建 DatabaseHelper
  2. 根据isNewBuild确定是首次生成还是重置APN等场景
  3. 首次开机或fota版本会执行updateApnDb()和addAllApnSharedPrefToLocalLog()以创建数据库
    1. updateApnDb:用户修改过的APN会被保存,根据IS_UNEDITED 筛选数据
    2. addAllApnSharedPrefToLocalLog:

相关字段

CARRIERS_UNIQUE_FIELDS_DEFAULTS 的unique 字段

    private static final Map<String, String> CARRIERS_UNIQUE_FIELDS_DEFAULTS = new HashMap();static {// Columns not included in UNIQUE constraint: name, current, edited, user, server, password,// authtype, type, protocol, roaming_protocol, sub_id, modem_cognitive, max_conns,// wait_time, max_conns_time, mtu, mtu_v4, mtu_v6, bearer_bitmask, user_visible,// network_type_bitmask, skip_464xlat, lingering_network_type_bitmask, always_onCARRIERS_UNIQUE_FIELDS_DEFAULTS.put(NUMERIC, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MCC, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MNC, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(APN, "");    //APN不一样是不会合并的,CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(PROXY, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(PORT, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MMSPROXY, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MMSPORT, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MMSC, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(CARRIER_ENABLED, "1");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(BEARER, "0");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MVNO_TYPE, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(MVNO_MATCH_DATA, "");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(PROFILE_ID, "0");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(PROTOCOL, "IP");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(ROAMING_PROTOCOL, "IP");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(USER_EDITABLE, "1");CARRIERS_UNIQUE_FIELDS_DEFAULTS.put(OWNED_BY, String.valueOf(OWNED_BY_OTHERS));CARRIERS_UNIQUE_FIELDS
http://www.dtcms.com/a/307763.html

相关文章:

  • 【08】大恒相机SDK C#发开 —— 多相机采集
  • 【自动化运维神器Ansible】Ansible常用模块之lineinfile模块详解
  • 【网络安全】等级保护2.0解决方案
  • Vue 3 + TypeScript 从基础到熟练指南
  • Apache RocketMQ 中Message (消息)的核心概念
  • 实现一键将仓库推送到Github和Gitee!!!
  • 使用docker compose 部署Elasticsearch 9.0.4集群 + kinaba
  • 【科研绘图系列】R语言绘制线性相关性
  • Maven 与单元测试:JavaWeb 项目质量保障的基石
  • ICLR 2025 | ROSE:一种基于频率分解与时间序列寄存器的通用时序预测模型
  • (1-7-6)Mysql 常用的基本函数
  • 中央气象台 7 月 31 日 10 时继续发布暴雨黄色预警
  • 无人船 | 图解基于LQR控制的路径跟踪算法(以欠驱动无人艇Otter为例)
  • PHP 5.5 Action Management with Parameters (English Version)
  • 知识随记-----使用现代C++客户端库redis-plus-plus实现redis池缓解高并发
  • python之使用ffmpeg下载直播推流视频rtmp、m3u8协议实时获取时间进度
  • 26.(vue3.x+vite)以pinia为中心的开发模板
  • 【RH134 问答题】第 11 章 管理网络安全
  • Git踩坑
  • Spring面试
  • wpf之ControlTemplate
  • ACL 2024 大模型方向优秀论文:洞察NLP前沿​关键突破!
  • SpringMVC核心原理与实战指南
  • C++游戏开发(2)
  • 解决Android Studio中创建的模拟器第二次无法启动的问题
  • Android Studio怎么显示多排table,打开文件多行显示文件名
  • Android Studio 中Revert Commit、Undo Commit 和 Drop Commit 使用场景
  • 【智能体agent】入门之--1.初体验
  • HighgoDB查询慢SQL和阻塞SQL
  • 微信小程序性能优化与内存管理