首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Debug Bridge强制RTL选项在没有root用户的情况下应用

Android Debug Bridge强制RTL选项在没有root用户的情况下应用
EN

Stack Overflow用户
提问于 2021-07-23 16:34:49
回答 1查看 124关注 0票数 1

我了解到,使用ADB one可以使用以下命令强制显示布局向导:

代码语言:javascript
复制
adb shell setprop debug.layout true
adb shell service call activity 1599295570 # SYSPROPS_TRANSACTION

多亏了SYSPROPS_TRANSACTION代码,开发人员才能看到布局网格。

其示例可以在here中找到

但是,如果我想要更改一些东西,比如RTL (从右到左)-我怀疑SYSPROPS_TRANSACTION调用不会强制重新渲染,因为它需要重新启动活动,因为设备的旋转将会起作用:

代码语言:javascript
复制
adb shell setprop debug.force_rtl true
adb shell settings put system user_rotation 3 # landscape
adb shell settings put system user_rotation 0 # portrait

虽然我不介意使活动无效,但我不认为我应该成为关于它的“手册”。有没有一种机制可以在不旋转的情况下刷新屏幕?

我在AOSP中查找,发现了以下内容:

代码语言:javascript
复制
    private void writeToForceRtlLayoutSetting(boolean isEnabled) {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.DEVELOPMENT_FORCE_RTL,
                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
        DisplayProperties.debug_force_rtl(isEnabled);
    }

大致相当于:

代码语言:javascript
复制
    adb shell settings put global debug.force_rtl 1.0 #or 0.0 for off

但我已经注意到,如果我这样做,并且循环一次,它不会改变

我一直在尝试找到适当的广播意图,以便它可以工作,但我找不到一个只是告诉屏幕重新渲染的意图

代码语言:javascript
复制
adb shell am broadcast <SOMETHING HERE WOULD BE NICE>

我从DarkModePreference中拿出一页,试图告诉它电池充电状态已经改变,但你不能从ADB中这样做:

代码语言:javascript
复制
    adb shell am broadcast android.os.action.POWER_SAVE_MODE_CHANGED

但也没有运气-没有刷新发生

注意:

有趣的是,安卓源代码中的layout bounds and RTL elements are grouped在更改时并没有使用相同的行为

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 14:07:11

我注意到如果我使用

代码语言:javascript
复制
adb shell wm size

我可以读取窗口的大小,并且作为额外的奖励,当设置它时,它会导致从右到左重新绘制。所以现在我要做的是读取窗口大小,保存它,稍微更改一下,将其设置为更改后的值,然后再重新设置。我的脚本类似于:

代码语言:javascript
复制
run("adb shell settings put global debug.force_rtl 1.0")
old_size = run("adb shell wm size")
run("adb shell wm size 100x100")
run("adb shell wm size " + old_size)

它会迫使右向左。这有点老生常谈,但它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68496343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档