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

Android 实现:当后台数据限制开启时,仅限制互联网APN。

需求描述和评估

后台数据限制仅作用于互联网APN,非上网 internet (default type)APN 需标记不计费。

When background data restriction is turned ON, only the internet APN should be restricted.
OEM's need to change android framework to add NET_CAPABILITY_NOT_METERED for all the non default APN's.

Android平台支持情况:默认不支持,需OEM修改APN网络能力配置

参考开发方案

修改ApnSetting中网络能力判断逻辑:

// frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/ApnSetting.java  
public boolean isMetered(Context context) {// 非Class3 APN添加NOT_METERED标志if (!apnTypeBitmask.contains(APN_TYPE_DEFAULT)) {  return (networkCapabilities & NET_CAPABILITY_NOT_METERED) == 0;  }  return super.isMetered(context);  
}  

更新DcTracker数据限制处理逻辑:(针对早期的 Android 版本,现在已经不用 DcTracker)

// frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DcTracker.java  
protected boolean isDataAllowed(NetworkRequest networkRequest) {if (mDataEnabledSettings.isBackgroundRestricted()) {// 仅限制DEFAULT类型APNreturn (networkRequest.networkCapabilities & NET_CAPABILITY_INTERNET) == 0;}return super.isDataAllowed(networkRequest);
}

    测试建议:

    • 测试环境:国内Lab模拟
    • 测试方法:
      ① 开启开发者选项中的"后台数据限制"
      ② 依次激活IMS、MMS、SUPL等非DEFAULT APN
      ③ 执行HTTP请求测试各APN连通性
    • 检查点:
      a) adb shell dumpsys netpolicy显示DEFAULT APN有BACKGROUND_RESTRICTED标记
      b) 非DEFAULT APN连接日志显示NET_CAPABILITY_NOT_METERED
      c) 后台限制时MMS/IMS仍可通过adb shell ping -I rmnet_data1 8.8.8.8验证
      d) 使用adb shell dumpsys connectivity bandwidth确认仅DEFAULT APN流量被抑制

    测试结果:暂无

    http://www.xdnf.cn/news/15580.html

    相关文章:

  1. 什么是“数据闭环”
  2. Docker-Beta?ollama的完美替代品
  3. MySQL高可用集群架构:主从复制、MGR与读写分离实战
  4. TDengine 的可视化数据库操作工具 taosExplorer(安装包自带)
  5. VMware Workstation Pro 17下载安装
  6. VR全景园区:开启智慧园区新时代
  7. 基于C#+SQlite开发(WinForm)个人日程管理系统
  8. 【leetcode】852. 山脉数组的封顶索引
  9. 树莓派Qt 安装
  10. CDSS系统升级“可视化解释-智能反馈-临床语言“三位一体设计架构设计分析
  11. nginx代理websocket请求
  12. 【华为】交换机vlan互访实验
  13. 语雀编辑器内双击回车插入当前时间js脚本
  14. 取消office word中的段落箭头标记
  15. Java零基础快速入门
  16. Vue3入门-组件及组件化
  17. Kafka——无消息丢失配置怎么实现?
  18. SpringMVC核心注解:@RequestMapping详解
  19. java-字符串
  20. modelscope ProxyError: HTTPSConnectionPool(host=‘www.modelscope.cn‘, port=443)
  21. JxBrowser 7.43.5 版本发布啦!
  22. HTML 常用语义标签与常见搭配详解
  23. 图片画廊浏览(侧重 CSS 网格布局和模态框交互)
  24. 代码随想录算法训练营第二十二天
  25. 项目学习笔记 display从none切换成block
  26. 基于SD-WAN的智慧高速解决方案:高效、低成本的智能交通实践
  27. 数据结构 双向链表(2)--双向链表的实现
  28. Kotlin集合聚合
  29. ABP VNext + EF Core 二级缓存:提升查询性能
  30. FAISS深度学习指南:构建高效向量检索系统的完整方法论