连接网络后,要对网络进行检测,判断是否连接了5G网络。Android 11及之后的版本添加了5G API,可以调用此API来检测设备是否连接了5G网络(这是5G设备的检测)。若是没有5G设备,也可以使用30.0.22以及之后版本的Android SDK模拟器进行5G网络检测,这是针对5G提供的模拟器支持。

检测5G网络的具体实现:使用TelephonyManager的监听方法

private fun getNetworkType(){

val tManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager

tManager.listen(object : PhoneStateListener() {

@RequiresApi(Build.VERSION_CODES.R)

override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {

if (ActivityCompat.checkSelfPermission(this@Android11Test2Activity, android.Manifest.permission.READ_PHONE_STATE) != android.content.pm.PackageManager.PERMISSION_GRANTED) {

return

}

super.onDisplayInfoChanged(telephonyDisplayInfo)

when(telephonyDisplayInfo.networkType) {

TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO -> showToast(“高级专业版 LTE (5Ge)”)

TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA -> showToast(“NR (5G) - 5G Sub-6 网络”)

TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE -> showToast(“5G+/5G UW - 5G mmWave 网络”)

else -> showToast(“other”)

}

}

}, PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)

}

结果对应:

返回类型解释:

进行流量计费的判断


确定连接的是5G网络后,在应用使用5G网络时需要判断此时的网络是不是按流量计费的。5G网络的流量很庞大,进行流量计费的判断是很重要的。因此,Android 11添加了NET_CAPABILITY_TEMPORARILY_NOT_METERED功能来标记此时使用的网络是否不按流量计费

检测流量计费方法:先监听网络,然后在网络回调中判断

val manager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager

manager.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() {

override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) {

super.onCapabilitiesChanged(network, networkCapabilities)

最后

在此为大家准备了四节优质的Android高级进阶视频:

架构师项目实战——全球首批Android开发者对Android架构的见解

链接:GitHub 免费获取!

附相关架构及资料

%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

附相关架构及资料

[外链图片转存中…(img-mUlp2tLy-1645091655456)]

领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

Android --- 5G网络,jetpack库相关推荐

  1. Android --- 5G网络,android系统开发教程

    Android - 5G网络 连接5G网络 检测5G网络 进行流量计费的判断 进行带宽估测 Android - 5G网络 ======================================= ...

  2. Android Jetpack 库架构组件 Room+Paging 基础使用

    上篇文章 Android Jetpack 库架构组件 ViewModel+LiveData 基础使用 的示例2中,使用 ViewModel+ LiveData 的方式实现了数据库数据查询并分页显示的效 ...

  3. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库

    XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...

  4. android判断网络类型5G,5G意识已经普及 但你知道5G网络有哪些类型吗

    原标题:5G意识已经普及 但你知道5G网络有哪些类型吗 尽管5G技术尚未得到广泛采用,但美国大多数消费者都意识到5G及其超快数据传输的希望,这些数据能够在移动设备上提供出色的多媒体流和增强的游戏体验. ...

  5. Android开源项目及库整理总结

    自己总结的Android开源项目及库. github排名https://github.com/trending, github搜索:https://github.com/search UI Aweso ...

  6. GitHub中Android开源项目及库汇总

    几个常用网站: github排名: https://github.com/trending , github搜索: https://github.com/search codeKK   :    ht ...

  7. Android 第三方库--2017年Android开源项目及库汇总

    转自:http://blog.csdn.net/jsonnan/article/details/62215287 东西有点多,但是资源绝对nice,自己都全部亲身体验过了,大家可放心使用 github ...

  8. 转载GitHub中Android开源项目及库汇总

    转自:https://blog.csdn.net/u013472738/article/details/78153077 几个常用网站: github排名: https://github.com/tr ...

  9. 澳禁止华为参与5G网络建设;锤子将编写自己的OS;国产处理器兆芯可运行Windows,已试制出Intel i5级处理器丨Q新闻...

    编辑 | 小智 本周要闻:澳大利亚禁止华为参与 5G 网络建设:罗永浩自掏腰包为开源社区捐款,并表示锤子将自己编写 OS:亚马逊云计算大降价,服务器价格砍掉一半:Deepin 15.7 发布:金色财经 ...

最新文章

  1. vbs 服务器获取输入信息,取得服务器上用户组列表脚本之VBS版
  2. 同事把 Redis用成这鬼样子,真坑!
  3. codeforces cf 521(div3) E题
  4. 移动端下网页border:1px显示
  5. 对malloc和free的思考
  6. 微软发布ASP.NET MVC 1.0正式版
  7. python install causes ModuleNotFoundError: No module named ‘_swigfaiss‘
  8. 一文浓缩 60 年,程序员不可不知的开源秘史!
  9. mysqladvisor安装
  10. Filenet公布首批候选自治社区
  11. 程序员的算法趣题 python3 - (4)
  12. eyoucms分页通用css样式
  13. 第一章、基于Ruoyi-Vue开发脚手架之对象存储实现
  14. 关于谷歌webrtc源码国内镜像的使用问题,以及Kurento媒体服务器
  15. 如何区分自己mac电脑的CUP型号
  16. php升序排列,php关联数组怎么按键名实现升序排列
  17. 树莓派从零开始快速入门系列汇总
  18. 王者荣耀改名神器助手微信小程序
  19. 计算机主机的拆卸的注意事项,如何进行电脑主机除尘及板卡维护
  20. 「补课」进行时:设计模式(5)——从 LOL 中学习代理模式

热门文章

  1. HZNU2509 曲院风荷——折半搜索
  2. 树莓派更改WiFi信息
  3. 云原生个人线路 Docker容器化
  4. appium重启报错:Could not proxy command to the remote server. Original error: socket hang up
  5. iftop工具(网卡流量监控软件)的使用
  6. 利用sikuli插件辅助实现自动化脚本
  7. scratch 学习网址:
  8. 人工智能的知识图,人工智能学习路线
  9. http://localhost/myphpsite/index.php
  10. 日期推算/日历(小程序)