Android N - Data Saver

android n在网络ConnectivityManager api的变动比较大。其中在蜂窝数据有一个流量保护机制,Data Saver。

可以在setting目录下,Data Usage里面可以开启关闭Data saver功能。开启Data saver后(默认是enable background data usage),会有一些应用列表出来,让你选择是否允许 unrestricted data access(不限制数据使用)。如果想要关闭background data usage,可以在Data Usage里找cellur data useage 选择你的ap,开关background data usage。


我们的程序需要适当的做一些事情,比如在data saver(仅适用于蜂窝数据)开之后,enable background data关了,后台就无法连接网络,这时我们就需要启动设置界面请求开启,intent 需要设置一个data也就是所在程序的包名。code 如下,

Intent intent =new Intent(Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS);Uri uri = Uri.parse("package:com.jxctest.nostalgiachild.jxctest");intent.setData(uri);startActivity(intent);

写receiver来监听开关data saver option changed事件。以下是我的测试结果(或有疏漏),只是助我自己记忆理解。

class MyReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {Log.d("MainActivity","onReceive "+ intent.getAction());ConnectivityManager manager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);boolean isNetworkMetered =  manager.isActiveNetworkMetered();Log.d("MainActivity","isNetworkMetered = "+ isNetworkMetered);if(isNetworkMetered){Log.d("MainActivity","getRestrictBackgroundStatus = "+ manager.getRestrictBackgroundStatus());switch (manager.getRestrictBackgroundStatus()){case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED://关闭了data saver,蜂窝数据不限制。break;case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED://开启了Data saver 或者 Data saver开启的状态下 enable backgroud data由关到开。这时service里后台运行的蜂窝数据不可以使用,假如程序不是activie程序,数据也不可以使用。break;case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED://Datat saver开启的状态下,allow unrestricted data access 开启了,这时蜂窝数据可以使用,即使程序切到后台,activie 程序非他自己,数据也可以使用。break;}}}}

再在代码里注册一下这个receiver,code如下

registerReceiver(new MyReceiver(),new IntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED));

简单的介绍一下Data Saver,自己也尝试了一下,感觉不算难理解,是一个实在api了,至少照顾到了我们Android用户。

Android N - Data Saver相关推荐

  1. 改变默认字体大小和默认显示大小。默认开启电量百分比 。 漫游开关默认状态显示为开启,手机数据默认状态。流量节省(Data saver)默认状态

    vendor/mediatek/proprietary/packages/apps/SettingsProvider/ src/com/android/providers/settings/Datab ...

  2. Data Saver 小节

    官方地址:Data Saver 优化网络流量消耗 在智能手机的整个生命周期,移动数据网络计划的成本通常会超出设备本身的成本. 从 Android 7.0(API 级别 24)开始,用户可以在整个设备上 ...

  3. android 创建虚拟内存,在 Android 的 /data 目录下添加虚拟内存

    在 Android 的 /data 目录下添加虚拟内存 Android 系统上添加虚拟内存已经不是什么新鲜事了, 很多手机都支持, 通常都是将虚拟内存添加到 SD 卡上, 不过由于 SD 卡的的读写速 ...

  4. android绑定java,Java-android数据绑定-找不到类android.view.data

    我试图在我的android应用程序中实现数据绑定,但是我遇到了以下问题: java.lang.ClassNotFoundException:找不到类" android.view.data&q ...

  5. android Codec-specific data

    android Codec-specific data 在CCodec中,CCodecBufferChannel::onWorkDone回调的时候处理csd buffer void CCodecBuf ...

  6. android 访问data目录、6.0模拟器读写sdcard、相关sdcard路径

    转载请标明出处: http://blog.csdn.net/xx326664162/article/details/52259980 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定 ...

  7. android 手机分区失败怎么办,一种Android系统Data分区自修复方法及系统专利_专利查询 - 天眼查...

    1.一种Android系统Data分区自修复方法,其特征在于,包括: 步骤1: Android智能终端开机进入Android系统后,判断Data分区是否损坏,对Data分 区进行挂载,然后读取Data ...

  8. android meta data值获取的坑

    2019独角兽企业重金招聘Python工程师标准>>> 获取meta data的时候,正常的非纯数字的字符串,设置在value里面,用getString获取是正常的. 但是如果含有纯 ...

  9. (两百八十八)Android R data stall检测机制学习

    1.简介 data stall检测机制就我现在的理解看来是Android 在网络校验成功后,对网络的一种持续监控措施,一旦发现当前网络断网,则通知ConnectivityService,进行相应的处理 ...

  10. android获得data data目录,Android 导出data/data目录数据库

    释放双眼,带上耳机,听听看~! 我们调试 App 的时候有时候要去除应用下 data/data/ 的文件,之前我都是运行在虚拟机上,然后再取出数据.今天发现一个好的方法,可以在真机上(不用 root ...

最新文章

  1. hibernate主配置文件中指定session与当前线程绑定
  2. 【反欺诈】互金欺诈与反欺诈
  3. Java工具类--Map集合与Java对象相互转换
  4. Poj 1006 / OpenJudge 2977 1006 Biorhythms/生理周期
  5. 阿里马涛:重新定义云时代的开源操作系统
  6. 极速火箭网络助手怎么用_在检测火箭队方面,神经网络比灰烬更好吗? 如果是这样,如何?...
  7. etal斜体吗 参考文献_论文参考文献格式要求
  8. 简单的新闻分类算法(流程图描述)
  9. win 10 硬盘安装 ubuntu 18.04
  10. LInux 的流量限制
  11. 《CSS揭秘》-总结47个Css技巧(一):常用的背景与边框技巧
  12. SQL Server 2005 版本介绍及所谓“企业管理器”问题
  13. java定义数组变量初始化为0_java中怎么数组初始化?
  14. epoch mysql_PostgreSQL中epoch的用法
  15. 腾讯47岁T13大佬被裁,厂龄15年依然被毕业?
  16. 反射之invoke方法
  17. Java: Tomcat到底是干嘛的?
  18. 深入浅出的解释什么是tensor
  19. 递推递归练习H - 三国佚事——巴蜀之危
  20. STM32学习记录——声音传感器的使用

热门文章

  1. 完美解决微信公众号多域名授权登录的问题
  2. oracle报609,日志文件报错 ORA-609
  3. lae界面开发工具入门之介绍五--秘籍篇-杂项
  4. 路由器DNS被劫持 解决办法
  5. 记录对接京东宙斯API -- 同步订单信息到自身系统
  6. 支付宝报错“暂时无法获取订单信息,请稍后再试”解决方法
  7. ie11加载项启用不了 java,经常提示此网站的某个加载项无法运行(ie10/11)
  8. 使用VM Ware创建虚拟机
  9. python搬家具_Python语言之学会Python之后!亲朋好友都夸我厉害!用Python买到最优惠的家具...
  10. RIME中州韵输入法lua配置获取当前时间(二)