首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建新状态栏不适用于targetSdkVersion 30

是因为在Android 11(API级别30)中,Google引入了一些变化来增强应用程序的隐私和安全性。其中一个变化是限制了对状态栏的自定义能力。

在targetSdkVersion 30及更高版本中,应用程序无法直接创建自定义状态栏。这意味着开发者不能通过代码创建一个全新的状态栏,而只能使用系统提供的默认状态栏。

这个变化的目的是为了确保用户对状态栏的控制权和隐私得到保护。自定义状态栏可能会被滥用,例如在状态栏中显示虚假的信息或欺骗用户。

然而,开发者仍然可以通过一些方式来对状态栏进行一定程度的自定义。例如,可以使用系统提供的API来更改状态栏的颜色、图标和样式。具体来说,可以使用以下方法:

  1. 使用Window类的setStatusBarColor()方法来更改状态栏的颜色。
  2. 使用Window类的setStatusBarIconColor()方法来更改状态栏图标的颜色。
  3. 使用Window类的setStatusBarContrastEnforced()方法来设置状态栏是否强制使用高对比度模式。
  4. 使用WindowInsetsController类的setSystemBarsAppearance()方法来更改状态栏的样式。

这些方法可以在不创建全新状态栏的情况下,对状态栏进行一定程度的自定义。但需要注意的是,这些方法仅适用于targetSdkVersion 30及更高版本,并且只能在应用程序的活动或对话框中使用。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tccli
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/tencent-virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 15特性,强制edge-to-edge全面屏体验

今年的Google I/O我也是观看了一遍,可以说现在AI成了Google唯一的焦点,Android已经登不了Google I/O的大舞台了,只能在一个小房间来介绍介绍Android 15的特性。...关于今年Android 15特性的文章,我把主要的行为变更过了好几遍,感觉非常值得一讲的也就是强制edge-to-edge全面屏体验这项变化了。...需要说明的是,只有将App的targetSdkVersion指定到35或更高时,Android 15才会强制启用edge-to-edge功能。...想要对刘海屏有更详细的了解,可以参考这篇文章 Android 9特性,对刘海屏设备进行适配 。...另外从Android 10开始,Google引入了手势导航,这使得手机屏幕的左右两侧可以用于触发Back键操作,手机屏幕的底部可以用于触发Home键操作,触发区域如下图中的黄色部分所示。

8210
  • 快速解决Android7.0下沉浸式状态栏变灰的问题

    2.问题 那么说到沉浸式状态栏的问题是什么呢?不知道大家有没有遇到过,应用在android7.0系统以下的手机上运行,沉浸式状态栏是正常的,但是在7.0以上的手机上运行就感觉没有沉浸式了,是分层的。...无论怎么修改状态栏背景色都没用,看下图:图1是7.0以下运行效果,图2是7.0以上运行效果。 ? ? 看到上面两幅图,明显感觉到7.0系统做了处理,在状态栏上蒙了一层灰色背景。...你会发现Android7.0以下,DecorView是PhoneWindow的内部类,而在7.0以上,是一个单独的类,并且有的属性和方法。...的属性如:mSemiTransparentStatusBarColor,看字面意思应该就是我们要找的,我们对它进行跟踪,与它相关的代码如下: DecorView(Context context, int...getBoolean( R.bool.config_forceWindowDrawsStatusBarBackground) && context.getApplicationInfo().targetSdkVersion

    1.2K20

    Android 9 Pie 兼容性常见问题及注意事项

    对应用开发者来说,相当于没有这些接口 深灰名单 没有发现应用在使用,但我们觉得有潜在的可能性 当 targetSdkVersion < P 时允许使用 当 targetSdkVersion...凹口屏幕 Display Cutout 不要硬编码状态栏的高度,请使用 WindowInsetsCompat 获取状态列的高度。...在大多数情况下,这些限制不会为现有应用带来的问题,但我们仍然建议您从应用中移除此类传感器请求。...月起,新发布的应用必须将 targetSdkVersion 设置为 26 或更高 从 2018 年 11 月起,现有应用的升级必须将 targetSdkVersion 设置为 26 或更高 2019 年之后...,新发布或升级应用必须将 targetSdkVersion 设置为一年内发布的 Android 版本

    1.4K20

    笔记(24)安卓各版本特性简述

    2.画中画(PIP)支持 一种特殊的多窗口模式,常用于视频播放。 3.自适应启动器图标 桌面icon在不同的设备型号上显示为不同的形状。...3.动画 引入AnimatedImageDrawable类,用于显示GIF和WebP动画图像。...您可以为应用构建自定义深色主题,也可以选择使用的 Force Dark 功能,让系统根据现有主题动态创建深色版本。 分区存储。分区存储将外部存储分成两部分。...,APP卸载的时候,这个目录下的文件会被删除;无法通过File的方式在其他路径创建文件。...hl=zh-cn 14.0 特性—2023年(Beta 版) 默认拒绝设定精确的闹钟 最低可安装的目标 API 级别23,targetSdkVersion lower than 23 无障碍非线性字体放大至

    52910

    android刘海屏适配(刘海屏或圆角适配)

    其P版本变更行为中就加入了对非SDK接口使用的限制。无论是直接,通过反射还是通过JNI。只要应用程序引用非SDK接口或尝试使用反射或JNI获取其句柄,就会应用这些限制。...那我先给大家放一张没有做适配较大宽高比应用出现的情况的样子: 第一张是compileSdkVersion 为25,targetSdkVersion为22的时候的情形。...就是将编译版本compileSdkVersion升到24以上,目标版本targetSdkVersion升到24以上; 如果不愿升级targetSdkVersion,可以在AndroidManifest.xml...我另外又同时为大家准备了另外一个适配场景,其中做了适配和没有做适配的页面如下图: 想必大家从以上2个场景中也能总结出刘海屏的适配规则了: 就是界面的重要元素(例如按钮)不能被状态栏遮挡,需要充分的利用状态栏的显示区域...代码大家一看就明白,就是给最顶部的按钮设置了一个marginTop即可,值即为状态栏的高度,通过代码设置可以直接适配所有版本。

    2K10

    Android P 开发者预览版首发!

    这种精确度允许您创建更多的体验:室内导航、基于位置的细粒度服务,例如,模糊语音控制 ( "打开这里的灯" ) ;基于位置的资讯服务 ( "这些优惠是针对这个产品的吗?" )。...本功能可以在应用中无缝工作,系统会管理状态栏的高度从而将您的内容与裁切区域分开。如果您拥有重要的沉浸式内容,则还可以使用的 API 查看裁切形状并创建全屏布局。...ImageDecoder 允许您从字节缓冲区、文件或 URI 创建位图或 drawable。...此初始版本仅供开发者使用,不适用于日常或终端用户,因此仅限手动下载和安装 (请查看文末 "Android P 开发者预览版" 链接)。...请继续关注我们发布的细节,但请注意,Android Beta 目前不适用于 Android P。 您的反馈意见对我们来说非常重要,所以热切欢迎您留言联系我们,分享您的想法、建议或问题。 ?

    1.2K20

    满足 Google Play 目标 API 等级 (targetSdkLevel) 的要求

    从 2018 年 8 月起,所有向 Google Play 提交的应用都必须针对 Android 8.0 (API 等级 26) 开发。...其中部分变更仅适用于那些通过 manifest 文件中的 targetSdkVersion 属性 (即目标 API 等级) 明确指出支持新版 API 行为的应用。...早于 Android 8.0 (API 等级 26) 下文列举内容适用于针对 Android 8.0 或更高版本平台开发的应用: 后台执行限制 (Background Execution Limits)...multiple displays 添加多窗口支持,提升 app 效率并管理多屏幕适配; - 如果最小化应用能够帮助您改善用户体验,您可添加画中画支持; - 针对凹口屏幕设备的优化: ·· 不要假定状态栏高度...·· 消除所有后台服务依赖; - 设置您的应用进入待机模式: ·· 测试任何触发 Firebase Cloud Messaging 消息的用例; ·· 测试任何需要使用闹钟的用例; 处理拍摄的照片以及视频

    8.6K30

    拖不得了,Android11真的来了,最全适配实践指南奉上

    是多少,只要在Android11设备上运行的应用都有影响) 为什么先说targetSdkVersion>=30的模块呢?...因为一般来说为了Google为了让我们更长时间适应的内容以及保障线上应用的稳定,都会把改动大的,需要花时间适配的内容放到targetSdkVersion对应的应用上,如果你暂时没有适配targetSdkVersion30...(打⭐的格外注意哦) 适配targetSdkVersion30 此模块的修改内容只针对targetSdkVersion 30或者以上才生效。...但是targetSdkVersion = 30中不行了,强制开启分区存储。...由29修改到30,读写报错,程序崩溃(open failed: EACCES (Permission denied)) 6) targetSdkVersion = 30,不删除应用,targetSdkVersion

    6.9K340266

    Android 9.0适配及部分特性介绍

    1、Android 9.0应用迁移 1.1 概述 在最开始针对速贷进行Android9.0版本的适配时,我使用的是真机是vivo X21A,将targetSdkVersion升到28,运行发现网络请求全报...降到27及以下 在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件(名字可自定),大概意思就是允许开启http请求,内容如下: 1<?...2、特性介绍(功能及API) 2.1、显示屏缺口支持:layoutInDisplayCutoutMode Android P的真机设备或模拟器上都可以模拟屏幕缺口,提供了三种样式。...11.07更新:使用新机子华为 Mate 20发现开发者选项中没有提供模拟屏幕缺口,且该机也自带有凹口位置,状态栏也一直处于刘海区域。下面提到的模式针对该机效果都不变。...API 28也提供了的类: DisplayCutout 类,该类主要用于获取凹口位置和安全区域的位置等。

    3.3K40

    Android P Beta 2 及终版 API 强势来袭!

    该功能可以在应用中无缝工作,系统通过管理状态栏的高度将您的内容与裁切区域分开。若应用中含有沉浸式内容,您可调用相应 API 确定裁切区域的位置和形状,并创建全屏布局。...更多 如果您的应用需要访问设备摄像头,不妨尝试下的多摄像头 API,让您可以通过两个或多个实体摄像头同时访问视频流。...接下来,请您尽快将应用的 targetSdkVersion 更新至 28,可以让您的用户及时体验到 Android 在安全、性能及稳定性方面的最新优化。...一切准备就绪,深入 Android P 并了解可用于扩展应用的诸多新功能及 API。...然后将您项目的 compileSdkVersion 和 targetSdkVersion 更新至 API 28。

    1.3K40

    Android 9.0 适配指南

    分钟 速读仅需4分钟 作者:唯鹿 链接:https://juejin.im/post/5d48bfece51d4561f17a5055 1 前言 国内从去年开始就有消息说,应用上架或者更新要求TargetSdkVersion...2 准备工作 进入正题,首先将我们项目中的targetSdkVersion改为 28。接下来运行你的项目,看有没中枪。...android.os.Build.VERSION_CODES.O) { startForegroundService(intentService); } else { startService(intentService); } 9.0 要求创建一个前台服务需要请求...为了防止你的内容被遮挡,大部分场景下都是可以使用获取状态栏高度来处理遮挡的适配问题。因为状态栏的高度都是大于等于刘海的高度。 当然,如果你想利用起来刘海区域,就需要获取刘海位置等信息进行适配。

    1.8K30

    开启全面屏体验 | 手势导航 (一)

    我们在 Android 10 中添加了的系统导航模式,用户可以通过手势交互执行后退、返回至主屏以及打开设备助手等操作。 ?...默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。(状态栏和导航栏统称为系统栏) ? 实现从边到边的全面屏体验后,系统栏会覆盖在应用内容前方。...在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。只要您的内容和布局允许,我们建议尽量把内容也拓展到状态栏的后方。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。 ?...对此我们最想提醒您注意的是,仅当您的应用声明 targetSdkVersion 为 29 时,才会发生这种情况。

    2.5K30

    Android Gradle开发指南详解

    Gradle简介 Gradle 是一个优秀的构建系统和构建工具,它允许通过插件创建自定义的构建逻辑。...buildToolsVersion: 用于指定项目的构建工具的版本。 applicationId: 用于指定项目的包名,在创建项目的时候已经指定了包名,当要修改整个项目的包名时可以在此更改。...targetSdkVersion:表示你在该目标版本上已经做过了充分的测试,系统将为你的应用开启一些最新的功能和特性。...假如targetSdkVersion 为23或者更高,那么在Android6.0中运行这个应用时会开启的功能和特性;若设置成了22,只能说明你的应用程序在Android5.1系统上做过了充分的测试,Android6.0...debug闭包用于生成测试版安装文件的配置,release闭包用于生成正式版安装文件的配置。此文件的配置如下: minifyEnabled:用于设置是否对项目的代码进行混淆。

    51121

    开启全面屏体验 | 手势导航 (一)

    我们在 Android 10 中添加了的系统导航模式,用户可以通过手势交互执行后退、返回至主屏以及打开设备助手等操作。...默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。(状态栏和导航栏统称为系统栏) 实现从边到边的全面屏体验后,系统栏会覆盖在应用内容前方。...在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。只要您的内容和布局允许,我们建议尽量把内容也拓展到状态栏的后方。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。...对此我们最想提醒您注意的是,仅当您的应用声明 targetSdkVersion 为 29 时,才会发生这种情况。

    18510
    领券