【问题标题】:JobService does not require android.permission.BIND_JOB_SERVICE permissionJobService 不需要 android.permission.BIND_JOB_SERVICE 权限
【发布时间】:2017-11-16 09:13:25
【问题描述】:

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

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 权限

【问题讨论】:

  • 您是否尝试过从清单中的service 中删除android:permission="android:permission.BIND_JOB_SERVICE"
  • @Signo 是的,但得到同样的错误。
  • android:permission="android.permission.BIND_JOB_SERVICE"而不是android:permission="android:permission.BIND_JOB_SERVICE"
  • 我认为权限字符串中将是. 而不是:。@AkhileshMani
  • @NazmulHaque 谢谢!这是我的愚蠢错误。

标签: android jobservice


【解决方案1】:

解决这个问题:

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

添加权限:

        android:permission="android.permission.BIND_JOB_SERVICE"

但需要属性:

android:exported="..."

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

例如:

    <service android:name="com.jorgesys.jobscheduler.MyService"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:exported="true"/>

【讨论】:

  • 这对我很有效!我在我的 AndroidManifest.xml 文件中添加了以下服务:&lt;service android:name=".service.BluetoothService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="true"/&gt;
  • @Elenasys 过去,我的警报通知正确触发并且没有应用程序崩溃。然后应用程序开始崩溃,并出现上述问题中相同的 Logcat 错误消息。我添加了您推荐的权限,不再崩溃。操作系统发生了什么变化?现在是触发警报通知的必要条件吗?
  • 这在我的情况下不起作用,...我正在使用工作意向服务
【解决方案2】:

您的Android Manifest 中有错字。

只需更改以下行:

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

android:permission="android.permission.BIND_JOB_SERVICE"

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

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多