Android13.0 强制APP横屏显示的实现

AI摘要

在项目中遇到需要APP始终横屏显示的需求,本文详细介绍了通过修改frameworks中的PackageParser.java, ParsedActivityUtils.java和ActivityClientController.java三个关键文件来实现强制横屏的解决方案。 134520979,17243493,深度学习实战:GANs详解与Python实现,['人工智能', '深度学习', 'GANs', 'Python', '模型训练']

项目要求实现APP横屏显示,在网上找了很多方法都不管用,因此直接从packageParser.java入手解决:

一、打开frameworks/base/core/java/android/content/pm/PackageParser.java


-            a.info.screenOrientation = sa.getInt(
-                    R.styleable.AndroidManifestActivity_screenOrientation,
-                    SCREEN_ORIENTATION_UNSPECIFIED);
              //add by
+            if(SystemProperties.getInt("persist.sys.force_land_enabled", 1) == 1){
+                a.info.screenOrientation = SCREEN_ORIENTATION_LANDSCAPE;
+            }else{
+                a.info.screenOrientation = sa.getInt(
+                        R.styleable.AndroidManifestActivity_screenOrientation,
+                        SCREEN_ORIENTATION_UNSPECIFIED);
+            }
+            //end
 
             setActivityResizeMode(a.info, sa, owner);

二、打开/frameworks/base/core/java/android/content/pm/parsing/component/ParsedActivityUtils.java

-                int screenOrientation = sa.getInt(R.styleable.AndroidManifestActivity_screenOrientation, SCREEN_ORIENTATION_UNSPECIFIED);
+                //add by
+                int screenOrientation;
+
+                Log.d(TAG, "persist.sys.force_land_enabled = " + SystemProperties.getInt("persist.sys.force_land_enabled", 1));
+
+                if(SystemProperties.getInt("persist.sys.force_land_enabled", 1) == 1){
+                    screenOrientation = SCREEN_ORIENTATION_LANDSCAPE;
+                }else {
+                    screenOrientation = sa.getInt(R.styleable.AndroidManifestActivity_screenOrientation, SCREEN_ORIENTATION_UNSPECIFIED);
+                }
+                //end
+

三、打开/frameworks/base/services/core/java/com/android/server/wm/ActivityClientController.java

@@ -636,7 +637,12 @@ class ActivityClientController extends IActivityClientController.Stub {
             synchronized (mGlobalLock) {
                 final ActivityRecord r = ActivityRecord.isInRootTaskLocked(token);
                 if (r != null) {
-                    r.setRequestedOrientation(requestedOrientation);
+                    // add by
+                    if(SystemProperties.getInt("persist.sys.force_land_enabled", 1) == 1) {
+                        r.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+                    }else{
+                        r.setRequestedOrientation(requestedOrientation);
+                    }
                 }
             }
         } finally {

 

至此,完美解决横屏问题!

Android 强制第三方应用横屏显示 第三方应用横屏显示 基于RK3399,Android11 屏幕方向旋转 当系统状态改变,需要重新更新方向时,就会调用 \frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java 会执行displayContent.updateRotationUnchecked() @Override public void updateRotation(boolean alwaysSendConfig 阅读详情

相关推荐

Android 13 上,你的音乐App通知栏和锁屏控制为啥不灵了?手把手教你用MediaSessionCompat搞定

本文深入解析了Android 13上音乐App通知栏和锁屏控制失效的问题,并提供了使用MediaSessionCompat的适配方案。通过详细的配置步骤和实战调试技巧,帮助开发者快速解决兼容性问题,确保媒体控制在Android 13设备上的正常运行。

weixin_30369041的博客 442

Chrome侧边栏投屏:WebUSB+TabQA实现免客户端安卓投屏

WebUSB 是现代浏览器中实现网页直连 USB 设备的关键 API,其核心价值在于为前端提供受控、安全的硬件通信能力,而非替代传统驱动。结合 MediaStream API 与轻量级前端框架,可构建无需安装客户端、不依赖 ADB 命令行、绕过 Qt/Electron 封装的纯 Web 投屏方案。该技术显著降低一线人员(如客服、测试、运营)的操作门槛,适用于金融 H5 表单提单、政务系统身份核验、多设备批量调试等强交互场景。TabQA 作为典型实践,将 WebUSB 权限管理、增量帧渲染、OCR-DOM 联

weixin_31714129的博客 87

Android 强制应用程序横屏显示

如果您希望在特定的Activity中实现强制横屏显示,只需将以上代码放置在相应的Activity的onCreate()方法中即可。综上所述,通过使用上述代码和技术,您可以在Android应用程序中实现强制横屏显示的功能。这将确保您的应用程序在横屏模式下提供更好的用户体验,并适应不同尺寸和方向的设备。首先,在AndroidManifest.xml文件中,我们需要为应用程序添加一个属性,指示应用程序的默认方向。在开发Android应用程序时,有时候我们需要将应用程序设置为强制横屏显示,以提供更好的用户体验。

TechSavant的博客 1539

Android应用程序横屏显示的强制实现方法

在Android开发中,有时我们需要将应用程序的界面以横屏模式显示,以提供更好的用户体验。本文将介绍如何通过修改Android应用程序的设置,强制所有的app在横屏模式下显示。AndroidManifest.xml是Android应用的清单文件,我们可以在其中指定应用程序的设置和配置信息。我们需要在Activity的生命周期方法中添加相应的代码,以确保应用程序在每次启动时都能强制横屏显示。由于应用程序将被强制以横屏模式显示,我们需要相应地调整布局文件,以适应横屏模式下的界面展示。第三步:适配布局文件。

2301_79326930的博客 1476

Android系统 添加动态控制屏幕方向、强制APP横竖屏方向

本文介绍了如何在Android系统中Settings添加屏幕旋转和强制App应用旋转的功能,以便客户可以根据项目需求调整屏幕方向。

我其实什么都不会 6224

Android 13.0 强制app横屏显示

在13.0产品定制化开发中,对于处理屏幕旋转方向,首先有kernel底层处理,从底层驱动gsensor 中获取数据,从而判断屏幕方向的,然后事件上报后 最后由WMS就是WindowManagerService 来处理旋转的相关事件

安卓兼职framework和app工程师的博客 2249

Android 13.0 framework层设置app固定横屏后,根据包名设置某个app竖屏显示

在13.0的系统rom产品定制化开发过程中,在某些产品中由于要求设置app固定横屏,所以对弈一些需要竖屏显示的 app显示不是那么的好,所以就需要根据包名来设置某些app竖屏显示来实现相关的功能

安卓兼职framework和app工程师的博客 358

android13固定app方向 强制app方向

经常遇到客户有固定或者设置应用方向,不让他们改成其他方向的需求。今天我们就来处理这种问题。

zhutoubenben的专栏 554

RK3568-Android15-强制横竖屏-默认App应用界面显示方向-屏幕显示方向跟随Sensor旋转

强制横竖屏什么意思呢?就是字面意思,强制让屏幕横屏显示、竖屏显示。这样的好处就是 解决了竖屏应用App 也可以横屏显示这里只是一个案例,最基本需求就是让竖屏应用也可以横屏显示强制横竖屏在大多数平板、车载、KTV中是最基本的需求,需要掌握这里没有研究源码,有兴趣的可以了解一下源码,很有意思的。

十年饮冰,难凉热血 237

Android 13.0 第三方app接收不到开机广播问题的解决以及开机自启动功能实现一

在13.0的系统ROM定制化开发中,在定制某些功能中,但是某些第三方app需要在系统开机后,收到 开机广播,完成自启动功能实现,接下来先看怎么实现第三方app接收开机广播功能

安卓兼职framework和app工程师的博客 361

MTK-Android13-源码分析DisplayRotation-屏幕旋转-强制横竖屏-去陀螺仪数据-强制横屏-强制竖屏

类涉及到一些知识点,这里总结归纳一下,方便后续提高开发效率屏幕旋转、强制横竖屏去掉陀螺仪数据不让旋转这里简单了解了下旋转相关的源码实际屏幕旋转还有很多其它业务需求,知道基本的业务逻辑、源码逻辑,旋转、监听相关知识点,根据实际业务需求进行业务开发。

十年饮冰,难凉热血 338

极验第四代滑块验证码破解(三):滑块轨迹构造

极验第四代滑块验证码破解(三):滑块轨迹构造声明 声明 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 本文关联文章超链接:

帯泪的鱼的博客 8623

从动态规划到最优控制:Hamilton-Jacobi-Bellman (HJB) 方程的核心思想与应用

本文深入解析了Hamilton-Jacobi-Bellman (HJB) 方程的核心思想与应用,从动态规划到最优控制的演变过程。通过实际案例展示了HJB方程在机器人路径规划、工业机械臂优化等领域的实践价值,并探讨了数值求解方法和深度学习结合的神经HJB前沿进展。

weixin_28700411的博客 452

基于深度学习的UWB门禁检测

针对基于UWB技术智能门禁管理系统,由于测距误差或非视距原因导致门禁产生不合理动作的现象。分析如何采用基于深度学习的方法,通过对TWR测距数据、TWR监听数据、到达角度差(PDOA)、信道脉冲响应(CIR)等数据维度进行深度学习,利用 TensorFlow建立相应的推导模型,对卡片姿态进行更加精准可靠的检测,从而更好完成闸机开合控制。

tenth_quadrant的博客 2026

别再只会regress了!用Stata的csdid命令搞定多期DID的完整实操指南

本文详细介绍了如何在Stata中使用csdid命令进行多期DID分析,解决传统DID方法在交错处理场景下的局限性。通过完整的实操指南,包括环境搭建、核心语法、结果解读和高阶应用,帮助研究者更准确地评估政策效果,适用于计量经济学和实证研究领域。

weixin_30236595的博客 582

数据增强综述及albumentations代码使用

数据增强综述及albumentations使用基于基本图形处理的数据增强 本文涉及到的资料: 1.A survey on Image Data Augmentation for Deep Learning 2.Albumentations: Fast and Flexible Image Augmentations 3.Code 基于基本图形处理的数据增强 1.翻转;2.旋转;3.仿射变换;4.色彩空间(RGB、YUV、CMY、HSV,在图像情感分析中会影响标签。最简单的方法就是只改变一个通道。对比度、直方

qq_41917697的博客 6679

Hermes接入IMA知识库全攻略:将知识库装进你的Hermes智能体

本文详细介绍了如何将IMA知识库功能接入Hermes Agent平台,实现一站式笔记管理和知识库操作。主要内容包括:获取IMA访问凭证、下载技能包、配置凭据(支持文件和环境变量两种方式)、验证配置有效性,以及实际应用演示(查询知识库列表、创建笔记并添加到知识库)。文章还提供了常见问题解决方案,如认证失败处理、版本更新等。通过该集成,用户可在Hermes中直接调用IMA的笔记创建、知识库管理等强大功能,提升工作效率。

小石头的专栏 640

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 200

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

下一篇: Android13.0 利用arping实现网络冲突检测
乡野码圣
博客等级 码龄17年 62粉丝 42原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乡野码圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值