web-dev-qa-db-ja.com

JobServiceはAndroid.permission.BIND_JOB_SERVICE権限を必要としません

does not require Android.permission.BIND_JOB_SERVICE permissionJobServiceのスケジュール中にエラーが発生しました。バインド権限が既にあります。以下は私のコードです。

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権限を必要としません

25
Akhilesh Mani

この問題を解決するために:

スケジュールされたサービス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"/>
43
Jorgesys

Android Manifestにタイプミスがあります。

次の行を変更するだけです。

Android:permission="Android:permission.BIND_JOB_SERVICE"

Android:permission="Android.permission.BIND_JOB_SERVICE"
0