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

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.dtcms.com/a/283714.html

    相关文章:

  1. NLP-文本预处理
  2. 使用docker安装、启动jenkins服务(mac系统)
  3. 数据结构 栈(1)
  4. vue-advance-concepts
  5. 【Redis 】看门狗:分布式锁的自动续期
  6. 部署-k8s和docker、jenkins的区别和联系
  7. 静态住宅IP和节点有什么区别?哪种更适合你的需求?
  8. 个人IP的塑造方向有哪些?
  9. 河南萌新联赛2025第一场-河南工业大学
  10. x3CTF-2025-web-复现
  11. 自动化技术在造纸行业的应用:EtherCAT转PROFIBUS DP解决方案
  12. 【后端】Linux系统发布.NetCore项目
  13. 图片上传实现
  14. web后端开发(javaweb第十天)
  15. 实现分页查询
  16. 如何解决pip安装报错ModuleNotFoundError: No module named ‘django’问题
  17. Java行为型模式(状态模式)实现方式与测试方法
  18. MySQL配置性能优化
  19. UGUI 性能优化系列:第一篇——基础优化与资源管理
  20. GPTQ与Unsloth量化区别
  21. Java Stream API性能优化:原理深度解析与实战指南
  22. 小程序性能优化全攻略:提升用户体验的关键策略
  23. 数据结构——树(2)
  24. 6. 工程化实践类:《Webpack 5 性能优化全指南:从构建速度到输出质量》
  25. DocsGPT:您的智能知识助手,解锁高效信息检索
  26. pytorch学习笔记(五)-- 计算机视觉的迁移学习
  27. Redis3:Redis数据结构与命令全解析
  28. Redis单机主从复制+多机主从复制的实现(一主两从)
  29. C语言模拟面向对象三大特性与C++实现对比
  30. HTML常用标签汇总(精简版)