0

我正在创建一个工作服务。该服务将根据 sms(sent) 的变化触发,工作正常但未能捕获一些消息。

    ComponentName component = new ComponentName(context, jobTest.class);
    Uri uri = Uri.parse("content://sms");

    JobInfo.TriggerContentUri triggerContentUri = null;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        triggerContentUri = new JobInfo.TriggerContentUri(uri,
                JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS);
    }

    JobInfo.Builder builder = new
            JobInfo.Builder(1, component).addTriggerContentUri(triggerContentUri);

    JobScheduler jobScheduler = (JobScheduler)
            context.getSystemService(Context.JOB_SCHEDULER_SERVICE);

    jobScheduler.schedule(builder.build());

我只捕获通过此作业发送的消息,当我向一个号码发送多条消息时,它只捕获最新消息。

我不想使用前台服务。

4

1 回答 1

0

要立即触发,需要添加 setTriggerContentMaxDelay

 JobInfo.Builder builder = new
            JobInfo.Builder(1, component).addTriggerContentUri(triggerContentUri).setTriggerContentMaxDelay(0);
于 2018-07-12T10:41:09.133 回答