Android 强制第三方应用横屏显示
第三方应用横屏显示
基于RK3399,Android11
屏幕方向旋转
当系统状态改变,需要重新更新方向时,就会调用
\frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java
会执行displayContent.updateRotationUnchecked()
@Overridepublic void updateRotation(boolean alwaysSendConfiguration, boolean forceRelayout) {updateRotationUnchecked(alwaysSendConfiguration, forceRelayout);}private void updateRotationUnchecked(boolean alwaysSendConfiguration, boolean forceRelayout) {ProtoLog.v(WM_DEBUG_ORIENTATION, "updateRotationUnchecked:"+ " alwaysSendConfiguration=%b forceRelayout=%b",alwaysSendConfiguration, forceRelayout);Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateRotation");long origId = Binder.clearCallingIdentity();try {synchronized (mGlobalLock) {boolean layoutNeeded = false;final int displayCount = mRoot.mChildren.size();for (int i = 0; i < displayCount; ++i) {final DisplayContent displayContent = mRoot.mChildren.get(i);Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateRotation: display");final boolean rotationChanged = displayContent.updateRotationUnchecked();Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
\frameworks\base\services\core\java\com\android\server\wm\DisplayContent.java
/*** Update rotation of the display.** @return {@code true} if the rotation has been changed. In this case YOU MUST CALL* {@link #sendNewConfiguration} TO UNFREEZE THE SCREEN.*/boolean updateRotationUnchecked() {return mDisplayRotation.updateRotationUnchecked(false /* forceUpdate */);}
强制横屏
\frameworks\base\services\core\java\com\android\server\wm\DisplayRotation.java
修改updateRotationUnchecked(),直接返回
boolean updateRotationUnchecked(boolean forceUpdate) {if(true){return true;}final int displayId = mDisplayContent.getDisplayId();if (!forceUpdate) {if (mDeferredRotationPauseCount > 0) {// Rotation updates have been paused temporarily. Defer the update until updates// have been resumed.ProtoLog.v(WM_DEBUG_ORIENTATION, "Deferring rotation, rotation is paused.");return false;}......
\frameworks\base\services\core\java\com\android\server\wm\DisplayContent.java
修改 getOrientation(),直接返回横屏,无视activity的android:screenOrientation属性
否则可能会出现应用先竖屏再旋转为横屏的现象
/*** In the general case, the orientation is computed from the above app windows first. If none of* the above app windows specify orientation, the orientation is computed from the child window* container, e.g. {@link ActivityRecord#getOrientation(int)}.*/@ScreenOrientation@Overrideint getOrientation() {if(true){return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;}mLastOrientationSource = null;if (mIgnoreRotationForApps) {return SCREEN_ORIENTATION_USER;}......
Android 强制第三方应用横屏显示相关推荐
- RK3588-android12强制第三方app横屏显示
需要修改两处地方: 1.frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java 2.framework ...
- android 悬浮窗口禁止横屏显示,悬浮窗强制设置屏幕方向|App开发交流区|研发交流|雨滴科技技术论坛 - Powered by Discuz!...
最近在做平板上的一个程序,需要配合中通的app来控制扫描与分拣机的转动.然后中通的程序在平板上运行有一个问题, 就是app里设置了强制竖屏,不能跟随系统旋转应用屏幕方向,然后把系统里的屏幕方向写死,虽 ...
- Android 强制应用全局横屏或竖屏
在Application的onCreate方法中添加以下代码,即可 registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks( ...
- Android 中屏幕进行横屏显示和竖屏显示的方法
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
- Android 11.0第三方app根据包名设置为横屏显示
11.0由于在定制化平板项目中,默认都是横屏显示的,如果第三方app是竖屏显示显得非常不协调,所以根据客户要求修改 第三方app竖屏的也要修改成为横屏显示,由于没有源码 所以只有在PMS 解析app的 ...
- Android 强制设置横屏或竖屏 设置全屏
Android 强制设置横屏或竖屏 设置全屏 全屏 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 requestWindowFeatur ...
- Android屏幕控制一:强制竖屏横屏
默认情况下,app会随着手机方向的改变进行屏幕切换,手机横向摆放的时候,app屏幕就会切换到横屏,反之切换到竖屏,但是app是一般都是根据竖屏设计的,一旦切换到横屏,布局就会乱掉,所以没有考虑横屏 ...
- Android强制设置横屏或竖屏
全屏 在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码 requestWindowFeature(Window.FEATURE_NO_TIT ...
- android 强制设置横屏 判断是横屏还是竖屏
判断activity 是横屏还是竖屏 方法 1: //根据设备配置信息 Configuration cf= this.getResources().getConfiguration(); //获取设 ...
最新文章
- php导出excel(xls或xlsx)(解决长数字显示问题)
- R语言创建自定义颜色(分类变量与颜色形成稳定映射)实战:设置因子变量(分类变量)到可视化颜色的稳定映射
- 【三维深度学习】多视角立体视觉模型R-MVSNet
- MIDL2020赛事object-CXR(胸部X射线异物检测大赛)
- 建立你第一个 Outlook Add-in
- rsyslog收集nginx日志配置
- DirectX修复工具有什么用
- 阿里图标库iconfont下载和在旧有的iconfont中添加新的图标
- 配置和google浏览器版本一直的webdriver
- 如何存放青龙脚本文件(不用复制)
- C#-学生信息管理系统
- 注册Google账号
- android 添加字幕,手机视频加字幕app 怎样用安卓手机在视频画面加文字字幕
- Mysql主从同步报错解决:Fatal error: The slave I/O thread stops because master and slave have equal..
- 雷库兹韦尔量子计算机,人物 | 他说,再挺11年,送你长生不老,要不要?
- 水浒108将(按出场顺序)
- 精准准确的统一社会信用代码正则(js)
- 微信小程序如何获取用户绑定手机号
- HDU - 6070 Dirt Ratio (二分 + 线段树)
- 使用dockers在服务器操作redis,下载安装测试等
热门文章
- poweriso 红旗linux,下载PowerISO
- 一文看懂电磁波的波段命名
- Java 全功能开源办公软件O2OA V4.2698 稳定版发布
- 两次被百度k站两次恢复的亲身经历
- android程序设计魔方矩阵,【图片】【记录】零基础用c4droid写一个3D魔方软件_c4droid吧_百度贴吧...
- javaweb基于SSH开发健康档案管理系统+论文+开题报告 课程设计 大作业源码 毕业设计
- 换晶振导致stm32串口数据飞码的解决办法
- 数字人民币跨境支付测试不断推进,内地居民未来在港购物也可用
- FlexibleButton驱动移植
- Python基础总结及数据分析代码记录(一、环境准备及数据结构;二、数据采集与操作)