Mru*_*nal 16 networking android android-7.0-nougat
使用Android N,您无法静态注册CONNECTIVITY_CHANGE意图的广播接收器.
来自http://developer.android.com/preview/features/background-optimization.html#connectivity-action Google文档建议使用Job Scheduler执行此任务.
是否可以使用Android中的Job Scheduler检测网络状态变化(LTE到wifi),反之亦然?
Tre*_*hns 14
是的,不是.
该JobInfo.Builder.setRequiredNetworkType()
方法允许您安排作业在满足特定网络条件时运行.
网络类型可以是以下三个值之一:
JobInfo.NETWORK_TYPE_NONE
:不需要网络连接.JobInfo.NETWORK_TYPE_UNMETERED
:未计量的 WiFi或以太网连接.JobInfo.NETWORK_TYPE_ANY
:任何网络连接(WiFi或蜂窝电话).现在,抓住......没有NETWORK_TYPE_CELLUAR.只有在蜂窝电话上才能唤醒您的应用程序.(你为什么想这么做?)
另一个问题...... WiFi连接可以计量或不计量.计量连接通常是移动热点之类的东西,可以自动检测(热点可以发送特殊的DHCP选项),或者用户可以通过WiFi设置在每个网络上手动切换它.
所以,是的,您可以在JobScheduler作业上设置网络类型约束.但是,不,您没有达到您要求的粒度级别.
正如@CommonsWare所提到的,我们的想法是,除非您有充分的理由,否则您通常希望在网络连接未计量时安排与网络相关的作业.(推迟工作直到交流电源可用,使用setRequiresCharging(true)
,以节省电池也是一个好主意.)
归档时间: |
|
查看次数: |
10192 次 |
最近记录: |