欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > Android14 - 前台Service、图片选择器 、OpenJDK 17、其他适配

Android14 - 前台Service、图片选择器 、OpenJDK 17、其他适配

2024/10/25 2:28:36 来源:https://blog.csdn.net/qq_27247815/article/details/140602291  浏览:    关键词:Android14 - 前台Service、图片选择器 、OpenJDK 17、其他适配

前台服务

1. 指定前台服务类型

     以 Android 14(API 级别 34)或更高版本为目标平台的应用,需要为应用中的每项前台服务指定服务类型,因为系统需要特定类型的前台服务满足特定用例。具体介绍如下:

    在Android 10 在 <service> 元素内引入了 android:foregroundServiceType 属性。
如果您的应用以 Android 14 为目标平台,则必须指定适当的前台服务类型,可组合使用多个类型;以下了可供选择的前台服务类型:
    •    camera
    •    connectedDevice
    •    dataSync
    •    health
    •    location
    •    mediaPlayback
    •    mediaProjection
    •    microphone
    •    phoneCall
    •    remoteMessaging
    •    shortService
    •    specialUse
    •    systemExempted

如果应用中的用例与这些类型均不相关,考虑使用 WorkManager 或Android 14中引入的新Api,即作业必须是用户发起的数据传输作业。

    在上述的类型中,Android 14 中新增 health, remoteMessaging, shortService, specialUse 和 systemExempted 等类型。 

    类型示例:
<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
    <application ...>
      <service
          android:name=".MyMediaPlaybackService"
          android:foregroundServiceType="mediaPlayback"
          android:exported="false">
      </service>
    </application>
</manifest>

         备注: 如果以 Android 14 或更高版本为目标的应用未在清单中定义给定服务的类型,系统会在调用 startForeground() 时引发 MissingForegroundServiceTypeException。

2. 启动时包含前台服务类型

        启动前台服务,最好的方式,是使用 ServiceCompat 版本的 startForeground()(适用于 androidx-core 1.12 及更高版本),传入前台服务的类型值,可传入一个或多个,比如aa,或aa|bb, 或aa|bb|cc;  


       启动服务,ServiceCompat

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com