在我们的应用程序中,我们希望将 Wifi 和蜂窝相关的呼叫分流。我们将目标设定为 28。
代码如下所示,用于基于蜂窝调度。但是,我们无法设置NETWORK_TYPE_CELLULAR
.
ComponentName componentName = new ComponentName(this, CellularJobServiceTest.class);
JobInfo jobInfo = new JobInfo.Builder(125,componentName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_CELLULAR)
.setPeriodic(10000).build();
JobScheduler jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
int resultCode = jobScheduler.schedule(jobInfo);
if(resultCode==JobScheduler.RESULT_SUCCESS){
Log.e(TAG,"Cellular : Job scheduled successfully");
}else{
Log.e(TAG,"Cellular : Job schedule failed.");
}
Android文档说NETWORK_TYPE_METERED
已弃用并改为使用NETWORK_TYPE_CELLULAR
。
来自Android文档的参考:
此常量在 API 级别 28 中已弃用。蜂窝网络可能未计量,或者 Wi-Fi 网络可能计量,因此这不是选择特定传输的好方法。相反,
NETWORK_TYPE_CELLULAR
如果您的工作需要特定的网络传输,请使用或 NetworkRequest.Builder.addTransportType(int)。
但 Android Studio 抛出Wrong constant
错误。
如果我知道为什么我无法设置它,那将是非常棒的。提前致谢。