42

does not require android.permission.BIND_JOB_SERVICE permission在安排我的时候遇到错误JobService,我已经拥有绑定权限。下面是我的代码。

JobScheduler jobScheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(MainActivity.this,MyJobService.class);
JobInfo.Builder jobInfo = new JobInfo.Builder(101, componentName).setPeriodic(2000);
jobScheduler.schedule(jobInfo.build())

 <service
  android:name=".MyJobService"
  android:permission="android:permission.BIND_JOB_SERVICE"
  android:exported="true"/>

错误:

java.lang.IllegalArgumentException:计划服务 ComponentInfo{services.acadglid.com.acadgildservices/services.com.es.MyJobService} 不需要 android.permission.BIND_JOB_SERVICE 权限

4

2 回答 2

67

要解决这个问题:

定时服务ComponentInfo{.........}不需要android.permission.BIND_JOB_SERVICE权限

添加权限:

        android:permission="android.permission.BIND_JOB_SERVICE"

但需要属性:

android:exported="..."

android:exported:广播接收器是否可以从其应用程序之外的源接收消息 - 如果可以,则为“true”,否则为“false”。

例如:

    <service android:name="com.jorgesys.jobscheduler.MyService"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:exported="true"/>
于 2018-03-15T23:44:44.967 回答
8

你的有错别字Android Manifest

只需更改以下行:

android:permission="android:permission.BIND_JOB_SERVICE"
                           ^
                           |
                    This " : " is WRONG!

android:permission="android.permission.BIND_JOB_SERVICE"

所以只需将:(冒号)更改为.(点)。

于 2019-07-12T15:14:32.143 回答