无法在JobService中使用JobInfo.NETWORK_TYPE_CELLULAR

时间:2018-08-08 12:29:02

标签: android android-studio android-8.0-oreo jobservice

在我们的应用中,我们希望将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 错误。

如果我知道为什么无法设置它,那将真的很棒。预先感谢。

0 个答案:

没有答案