应用启动方向由首个activity的android:screenorientation属性决定,需在manifest中为含launcher的activity设置landscape、sensor或unspecified;代码中setrequestedorientation会覆盖manifest配置,且“添加至主屏幕”不改变此逻辑。

添加至主屏幕(PWA 或 Android App Shortcut)后,应用启动方向由其首个 Activity 的配置决定,不是由 Manifest 中的图标或快捷方式本身控制。关键在 <activity></activity> 标签里的 android:screenOrientation 属性。
指定启动 Activity 的横屏方向
在 AndroidManifest.xml 中找到作为入口(含 LAUNCHER intent-filter)的 Activity,添加 android:screenOrientation="landscape":
<activity android:name=".MainActivity" android:exported="true" android:screenorientation="landscape"><intent-filter><action android:name="android.intent.action.MAIN"></action><category android:name="android.intent.category.LAUNCHER"></category></intent-filter></activity>
这样无论用户从桌面图标、最近任务栏还是“添加到主屏幕”快捷方式启动,Activity 都会强制以横屏初始化。
支持横竖屏自适应(推荐用于通用应用)
若希望应用响应设备旋转(如视频类),可设为 sensor 或 unspecified:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
-
android:screenOrientation="sensor":根据重力传感器自动切换,横竖屏均允许 -
android:screenOrientation="unspecified":交由系统决定(通常等同于 sensor)
注意:此模式下需配合 res/layout-land/ 和 res/layout-port/ 提供不同布局,否则横屏可能显示错位。
避免方向冲突的注意事项
如果代码中调用了 setRequestedOrientation(),它会覆盖 Manifest 设置。确保两者一致:
- Manifest 设为
landscape,就不要在onCreate()中再调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) - 若需动态控制(如播放页横屏、列表页竖屏),建议仅对特定 Activity 单独配置,而非全局统一
“添加至主屏幕”本身不改变方向逻辑
Android 的“添加到主屏幕”功能(包括 PWA 的 WebAPK 或原生 Shortcut)只是创建一个指向该 Activity 的快捷方式,不引入新的方向控制机制。它的行为完全继承自目标 Activity 的 Manifest 配置和运行时逻辑。










