最近遇到这么一个需求,在公司的Android11系统中发现部分下载的第三方应用,没有全屏显示并且两边有黑边。
经过我分析,这个问题和横竖屏显示有关。反编译第三方的apk发现,Androidmainfest中
添加
android:screenOrientation="portrait"
因为我们作如下修改:
diff --git a/release/frameworks/base/core/java/android/content/pm/parsing/component/ b/release/frameworks/base/core/java/android/content/pm/parsing/component/
old mode 100644
new mode 100755
index fb8fd74545c..17a153d4314
--- a/release/frameworks/base/core/java/android/content/pm/parsing/component/
+++ b/release/frameworks/base/core/java/android/content/pm/parsing/component/
@@ -145,8 +145,20 @@ public class ParsedActivityUtils {
= (
(.AndroidManifestActivity_configChanges, 0),
(.AndroidManifestActivity_recreateOnConfigChanges, 0));
-
- int screenOrientation = (.AndroidManifestActivity_screenOrientation, SCREEN_ORIENTATION_UNSPECIFIED);
+ /**
+ * Force horizontal display without SharedUserId
+ * edit 2022.08.09
+ */
+ int screenOrientation;
+ if (() == null){
+ screenOrientation = 0;
+ }else{
+ screenOrientation = (.AndroidManifestActivity_screenOrientation, SCREEN_ORIENTATION_UNSPECIFIED);
+ }
+ /**
+ * Force horizontal display without SharedUserId
+ * edit 2022.08.09
+ */
int resizeMode = getActivityResizeMode(pkg, sa, screenOrientation);
= screenOrientation;
= resizeMode;
考虑到可能还可能调用里面的setRequestedOrientation方法去设置横竖屏
diff --git a/core/java/android/app/ b/core/java/android/app/
index bfa35da..e0c53eb 100644
--- a/core/java/android/app/
+++ b/core/java/android/app/
@@ -5773,12 +5773,12 @@ public class Activity extends ContextThemeWrapper
if (mParent == null) {
try {
+ if(mApplication != null && () != null
+ && ().uid > 10000){
+ ().setRequestedOrientation(
+ mToken, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ }else{
+ ().setRequestedOrientation(
+ mToken, requestedOrientation);
- ().setRequestedOrientation(
- mToken, requestedOrientation);
- mToken, 0);
}
} catch (RemoteException e) {
// Empty
}
} else {
+ if(mApplication != null && () != null
+ && ().uid > 10000){
+ (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ }else{
+ (requestedOrientation);
+ }
- (requestedOrientation);
}
}