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>
JobIntentService
与 JobService
一样,只能在应用程序中使用。您无法让其他应用程序与这些服务对话,也没有任何类型的直接 PendingIntent
选项。
(理论上,您可以从 Android 4.4 及更早版本的其他应用程序与 JobIntentService
对话,因为我不确定 android:permission="android.permission.BIND_JOB_SERVICE"
将如何处理当该权限未定义时,但我不会指望它)
对于 IPC,您将需要使用其他东西。因此,例如,如果您希望 PendingIntent
由 JobIntentService
处理,请创建一个广播 PendingIntent
,其中显式 Intent
指向清单注册的接收者,并且有它 post 工作到 JobIntentService
.
我正在尝试设置 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>
JobIntentService
与 JobService
一样,只能在应用程序中使用。您无法让其他应用程序与这些服务对话,也没有任何类型的直接 PendingIntent
选项。
(理论上,您可以从 Android 4.4 及更早版本的其他应用程序与 JobIntentService
对话,因为我不确定 android:permission="android.permission.BIND_JOB_SERVICE"
将如何处理当该权限未定义时,但我不会指望它)
对于 IPC,您将需要使用其他东西。因此,例如,如果您希望 PendingIntent
由 JobIntentService
处理,请创建一个广播 PendingIntent
,其中显式 Intent
指向清单注册的接收者,并且有它 post 工作到 JobIntentService
.