乱谈府

乱谈府

折叠屏Fold5双屏不同桌面方案

64
2024-03-19
折叠屏Fold5双屏不同桌面方案

我使用三星设备偏多,从S9系列入坑,S9+,S10 5G,Tab S7+,到S22U,耳机手表还用过buds+,buds pro,watch active2和watch classic4,最近还给女票淘了个美丽小废物flip3做热点备用机。实际自折叠屏发售以来我就觊觎已久,特别是fold系列的大折叠,但奈何感觉技术不成熟,加上价格也偏贵,一直没有入手。Fold5作为三星最新屏幕终于能够完整合上的新一代折叠,戳中了我的心窝。由于自己有root的需求,fold系列唯有欧版可以轻易的解锁且能使用相机,在海鲜市场蹲候多时终于入手。天蓝色12+256,屏幕完美,边框有一点点掉漆,不过6300,还要什么自行车,带个凯夫拉壳美滋滋。

三星折叠最与其他品牌折叠不同的点就在于它独特的屏幕比例,折叠情况下23:9的比例,导致它握起来更像是一个遥控器。自带默认的OneUI主屏幕固然可以,在展开内屏的情况下,合理显示布局,加上自带的下面一条任务栏,使用起来非常舒适。但是合起使用外屏时,拥挤的状态不够优雅。Niagara Launcher作为一个第三方启动器,其简洁的滑动字母布局和通知直接呈现提醒非常适合三星狭长的外屏。于是需求产生了,是否可以在外屏使用Niagara主屏幕,而打开内屏后自动切换为有任务栏的OneUI主屏幕呢?

思路拆解

答案显然是可以的,Android是可以选取拿个应用作为默认启动器的。在查阅和综合了相关资料后,结合实际使用情况,这个问题的解决方案可以进一步细化为以下三个部分:

  1. 当屏幕合上,为外屏时,切换Niagara为默认主屏幕
  2. 当屏幕打开,为内屏时,切换OneUI为默认主屏幕
  3. 在外屏正在使用一些app时,如果此时打开为大屏幕内屏,则需要保持这些app为打开状态。即外屏转到内屏时,有些app可以无缝切换(不会返回主屏)

理论上,只要手机厂商允许修改默认启动器,那么在其他牌子折叠屏上也同样可以实现。

无ROOT解决方案

大多情况下,手机是没有root的,这里需要借助Tasker和它的一个插件 AutoTools。Tasker是一个自动化工具,有点类似苹果的快捷指令和三星的日常程序,不过它能够做到的东西更加广泛一些。软件可以试用,tasker建议直接入手,autotools看广告免费用。

tasker使用adb命令去激活read logs的功能,连接adb后,输入以下命令:

adb shell pm grant net.dinglisch.android.taskerm android.permission.READ_LOGS
adb shell am force-stop net.dinglisch.android.taskerm

之后就需要使用tasker创建对应任务和触发条件,这里引用两个其他帖子的方法(本质一样),自行配置,不重复造轮子了。

[Tasker] Auto-switch Launcher for folded/unfolded screen

How to Set Different Launcher for Folded/Unfolded Screen

如果觉得配置起来有点迷糊,这里也有reddit网友给出的tasker一键导入,一共三配置,分别对应思路拆解的三个部分:

Reddit回答 Dual Launcher Fold 5

这里分别解释一下三个配置文件

折叠情况

在自定义设置情况下,执行Folded这个任务。自定义设置为判断条件,edge_panel_width值为401即折叠情况下。Folded任务有以下步骤:

  1. 使用AutoTools将主屏幕设置为Niagara。
  2. 返回桌面主页。
  3. 设置一个变量,名称为FoldStatus,设置此时状态为CLOSED(关闭)。实际上这步可以不需要。后续可以根据这个自定义更多复杂的操作。

判断需要保持打开的APP

在特定app打开的情况下,执行Hold Refresh这个任务;在app关闭后,执行Pause Refresh这个任务。特定app可以根据自己需要选中即可。

其中,Hold Refresh任务定义了一个变量,名称为PauseRefresh,并设定为1。Pause Refresh任务将PauseRefresh这个变量值进行清楚。

因此这个配置文件的逻辑为:在特定选中的app打开时,变量PauseRefresh被设置为1,在app关闭退出时,变量PauseRefresh变为未设置状态。这个主要是为了配合下面一个配置文件做判断。

展开情况

在自定义设置情况下,执行Unfolded这个任务。自定义设置为判断条件,edge_panel_width值为362即展开情况下。UnFolded任务有以下步骤:

  1. 使用AutoTools将主屏幕设置为OneUI主屏幕。
  2. 判断变量PauseRefresh是否设置,如果设置,表示选中app在前台,不做操作。如果未设置,则返回桌面,启动主屏幕。
  3. 将变量FoldStatus,设置此时状态为OPENED(打开)。实际上这步可以不需要。

在导入完三个配置文件后,一定要将默认启动器设置为AutoTools,不然无效。

小瑕疵

因为本质上还是借助AutoTools作为一个中间应用,去启动两个不同的桌面,AutoTools才是默认的桌面,因此有点小瑕疵:比如桌面长按应用无法使用shortcuts;手机重启后展开大屏无法显示状态栏,需要手动把默认桌面先切换回OneUI主屏幕,保证状态栏显示,再修改为AutoTools。不过这些瑕疵无伤大雅,因为99%的时间你不会去调整桌面,也不会经常去重启手机。所以体验还算舒服。

ROOT解决方案

不过既然我都已经root,当然要展现root的优势。主要改进就一点,使用tasker直接调用shell命令,在root的环境下切换默认桌面。这样就可以和AutoTools说拜拜了。

至于切换的命令,探索后发现是这个:

adb shell cmd package set-home-activity com.example.launcher/com.example.launcher.MainActivity

com.example.launcher为启动器的包名,

在tasker中选择将选择Autotools的命令改为运行shell命令,输入语句,例如展开时OneUI启动器:

cmd package set-home-activity com.sec.android.app.launcher/com.sec.android.app.launcher.MainActivity

折叠时Niagara 启动器

cmd package set-home-activity bitpit.launcher/bitpit.launcher.MainActivity

其他更改不变,这样就可以直接切换到默认的启动器,而且小瑕疵问题也解决了。

我图中还借助rotation这个应用,实现折叠小屏强制竖屏,展开大屏强制旋转。另外我发现,用大屏情况下,转到后置摄像头自拍,且用小屏控制时会回到桌面,所以我还设置了一个变量Camera Set,检测如何变为小屏时相机打开了,那么还是再开启相机,实现一个无缝后置摄像头自拍的情况。这种设置很灵活,配合自己的需求修改就好。

Fold5简单使用体验

Fold5到手已经用了快10天了,我用起来还算满意。可能是这种屏幕比例,我更倾向于展开使用屏幕,真的就像在用一个小平板一样,阅读文字和漫画的体验非常舒服。自己也不是追求那么极致的拍照体验,所以从S22U换下来感觉也还好。而且折叠屏最重要的一点,我拍照的时候可以打开后置预览,这样拍人物的时候对方可以在外屏看到呈现效果,调整姿势表情。这简直感动哭了好吧,拍女朋友时候难度直接降低一个等级,增进情侣和睦的好机器呀。

而且8gen2真的出色,尽管Fold5只有4400毫安的电池,当感觉比我8gen1的S22U续航还要好,外出续航焦虑至少是没有了。虽然25w充电,但三星45和25w在充满时间上没太大区别,也感知不强了。

目前时这些,后续如果再有啥体验再补充吧。

自己由于是root玩家,淘一个可以轻易root且不锁相机的欧版也算是花了大功夫。最后我只建议三星你不要不识好歹,把你那针对除了欧版其他版本解锁后相机不能用的规矩给我取消了,让人能好好的玩玩机喽!