小编Sai*_*aif的帖子

foregroundServiceType 0x00000001 不是清单文件的服务元素中 foregroundServiceType 属性 0x00000000 的子集

我已经使用 WorkManager 实现了 Foreground Service,它在 API 级别 33 之前都可以正常工作。由于在 API 级别 34 中必须指定 foregroundServiceType,因此我在 Worker 和 Manifest 中指定了它,但收到此错误。

AndroidManifest.xml

所需权限:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

<service
        android:name=".services.DownloadService"
        android:exported="false"
        android:enabled="true"
        tools:node="merge"
        android:foregroundServiceType="dataSync"/>
Run Code Online (Sandbox Code Playgroud)

内部工人:

 setForegroundAsync(
       ForegroundInfo(
            NOTIFICATION_ID,
            getNotification(),
            ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
       )
  )
Run Code Online (Sandbox Code Playgroud)

出现此错误


java.lang.IllegalArgumentException: foregroundServiceType 0x00000001 不是android.os.Parcel.createException(Parcel.java:处 android.os.Parcel.createExceptionOrNull(Parcel.java:3015) 处清单文件的服务元素中 foregroundServiceType 属性 0x00000000 的子集2995)
在 android.os.Parcel.readException(Parcel.java:2978)
在 android.os.Parcel.readException(Parcel.java:2920)
在 android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:6079) )在 android.app.Service.startForeground(Service.java:797) ...

我尝试到处做一些改变,但没有任何效果。

foreground-service android-workmanager android-14

15
推荐指数
3
解决办法
3393
查看次数