Android 14 之 应用必须指定前台Service类型 (Foreground service types are required)

如果应用以 Android 14 为目标平台,则必须为应用中的每个前台服务指定至少一种前台Service类型(需开启前台Service的模块需要重点关注)。

1.什么是前台Service?

前台服务显示状态栏通知,让用户知道APP正在前台执行任务并且正在消耗系统资源。(微信共享位置,音乐播放器,健身程序,定位程序),绝大多数情况下:它可以一直保持运行状态而不被系统回收

2.Service权限的改变

2.1 Android 11开始

如果需要一直使用(location、camera、microphone)隐私权限,需要启动服务时获取用户同意。以位置为例,那么仅仅声明这种service类型就可以:

xml 复制代码
<manifest>
    ...
    <service ... 
        android:foregroundServiceType="location" />
</manifest>

可以看到,图中多了一个"仅限这一次"的选项。如果用户选择了这个选项,那么在整个应用程序的生命周期内,我们都是可以获取到摄像机数据的。但是当下次启动程序时,则需要再次请求权限。

2.2 Android 14
复制代码
  谷歌提供了以下可以选择的额多种前台服务类型,可以选择单一,也可以组合选择。
  camera
  connectedDevice
  dataSync
  health
  location
  mediaPlayback
  mediaProjection
  microphone
  phoneCall
  remoteMessaging
  shortService
  specialUse
  systemExempted
  • 不能以上的前台service类型准确相关联的应用,一般情况下可以使用specialUse,涵盖其他前台服务类型未涵盖的任何有效前台服务用例。
ini 复制代码
<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
    <application ...>
      <service
          android:name=".MyMediaPlaybackService"
          android:foregroundServiceType="specialUse"
          android:exported="false">
      </service>
    </application>
</manifest>
相关推荐
wangbing11252 分钟前
监控网页项目常用英文缩写
java
麻瓜code7 分钟前
双写一致性:为什么是“删缓存“,而不是“改缓存“
java·缓存·mybatis
美狐美颜SDK开放平台9 分钟前
开发直播APP、电商短视频与视频社交平台时,能否共用一套美颜SDK?
android·图像处理·人工智能·音视频·直播美颜sdk
小蒜学长9 分钟前
基于SpringBoot+Vue的云南地区扶贫助农系统的设计与实现(代码+数据库+LW)
java·vue.js·spring boot·后端·乡村振兴
砚底藏山河17 分钟前
量化回测可复现流水线CI化
java·python·ci/cd·金融
骑着蜗牛撵大象32718 分钟前
Spring Boot 4.1 + Spring AI 2.0:RAG 供文、图谱供关系、MCP 供工具的 Java Agent 平台
java·spring boot·spring·微服务·知识图谱·rag·mcp
事圆则缓22 分钟前
Android 中的 MQTT 协议:从设备状态推送到可靠消息处理
android
三雷科技29 分钟前
Android 开发环境搭建指南
android
衍生星球38 分钟前
【Java 语言】— 面向对象:构造方法(无参、有参构造)
java·开发语言
SimonKing40 分钟前
素笺( local-notes)全面优化,新增功能体验不一样的笔记
java·后端·程序员