Android JobIntentService ADB Error: Requires permission android.permission.BIND_JOB_SERVICE

Android JobIntentService ADB Error: Requires permission android.permission.BIND_JOB_SERVICE

我正在尝试设置 JobIntentService 并使用 adb 对其进行测试。

当我使用这个命令时:

adb shell am startservice -a "com.example.package.action.DO_THING"

它产生错误:

Error: Requires permission android.permission.BIND_JOB_SERVICE

我的 AndroidManifest.xml 有以下条目:

<service
    android:name=".services.intents.IntentHandlerService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="true">
    <intent-filter>
         <action android:name="com.example.package.action.DO_THING"/>
    </intent-filter>
</service>

JobIntentServiceJobService 一样,只能在应用程序中使用。您无法让其他应用程序与这些服务对话,也没有任何类型的直接 PendingIntent 选项。

(理论上,您可以从 Android 4.4 及更早版本的其他应用程序与 JobIntentService 对话,因为我不确定 android:permission="android.permission.BIND_JOB_SERVICE" 将如何处理当该权限未定义时,但我不会指望它)

对于 IPC,您将需要使用其他东西。因此,例如,如果您希望 PendingIntentJobIntentService 处理,请创建一个广播 PendingIntent,其中显式 Intent 指向清单注册的接收者,并且有它 post 工作到 JobIntentService.