IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Go版本无悬浮旋转屏幕按钮问题 -> 正文阅读

[移动开发]Android Go版本无悬浮旋转屏幕按钮问题

问题分析:

在Android11版本的机器上打印堆栈,关闭屏幕旋转后横屏手机会进行如下调用

?

//在NavigationBar上显示屏幕旋转按钮
04-25 13:24:22.558 17140 17140 D weihang2: setVisibility: java.lang.Throwable
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationContextButton.setVisibility(RotationContextButton.java:49)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButtonGroup$ButtonData.setVisibility(ContextualButtonGroup.java:158)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButtonGroup.setButtonVisibility(ContextualButtonGroup.java:89)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButton.show(ContextualButton.java:95)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationButtonController.setRotateSuggestionButtonState(RotationButtonController.java:223)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationButtonController.setRotateSuggestionButtonState(RotationButtonController.java:183)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationButtonController.showAndLogRotationSuggestion(RotationButtonController.java:348)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationButtonController.onRotationProposal(RotationButtonController.java:292)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.NavigationBarFragment.onRotationProposal(NavigationBarFragment.java:795)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.CommandQueue$H.handleMessage(CommandQueue.java:1157)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at android.os.Handler.dispatchMessage(Handler.java:106)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at android.os.Looper.loop(Looper.java:223)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at android.app.ActivityThread.main(ActivityThread.java:7848)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at java.lang.reflect.Method.invoke(Native Method)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
04-25 13:24:22.558 17140 17140 D weihang2: ? ? ?at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
04-25 13:24:22.558 17140 17140 D weihang2: setVisibility: visibility = 0

//动画结束后,旋转按钮消失
04-25 13:24:27.678 17140 17140 D weihang2: setVisibility: java.lang.Throwable
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationContextButton.setVisibility(RotationContextButton.java:49)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButtonGroup$ButtonData.setVisibility(ContextualButtonGroup.java:158)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButtonGroup.setButtonVisibility(ContextualButtonGroup.java:93)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.ContextualButton.hide(ContextualButton.java:107)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.systemui.statusbar.phone.RotationButtonController$2.onAnimationEnd(RotationButtonController.java:245)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:554)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1250)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1492)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.view.Choreographer.doCallbacks(Choreographer.java:797)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.view.Choreographer.doFrame(Choreographer.java:728)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:959)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.os.Handler.handleCallback(Handler.java:938)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.os.Looper.loop(Looper.java:223)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at android.app.ActivityThread.main(ActivityThread.java:7848)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at java.lang.reflect.Method.invoke(Native Method)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
04-25 13:24:27.678 17140 17140 D weihang2: ? ? ?at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
04-25 13:24:27.678 17140 17140 D weihang2: setVisibility: visibility = 4

在Android GO机器上添加相同的log,关闭屏幕旋转在手机横屏时无任何log打印

由此可见OrientationListener并未往下调用

而控制OrientationListener? disable或enable的参数在DisplayRotation.java中

//frameworks/base/services/core/java/com/android/server/wm/DisplayRotation.java

int?showRotationSuggestions?=?ActivityManager.isLowRamDeviceStatic()

??????????????????????Settings.Secure.SHOW_ROTATION_SUGGESTIONS_DISABLED

????????????????????:?Settings.Secure.getIntForUser(resolver,

????????????????????Settings.Secure.SHOW_ROTATION_SUGGESTIONS,

????????????????????Settings.Secure.SHOW_ROTATION_SUGGESTIONS_DEFAULT,

????????????????????UserHandle.USER_CURRENT);

在该位置会判断设备是否为低内存设备,如果是低内存设备则

showRotationSuggestions = Settings.Secure.SHOW_ROTATION_SUGGESTIONS_DISABLED

因此,在Android Go当中不会显示屏幕旋转按钮

该现象可以进行修改,并且修改后功能正常

但是,单独打开某几个go版本限制功能,是不会有太大问题的,只是随着打开的限制越多,逐渐积累可能会出现内存不足问题。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:00:30  更:2021-10-01 17:03:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:36:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码