7.1 系统内强制某个应用横屏

diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index e617fb3..f7464e6 100755
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -259,6 +259,11 @@ import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 import static com.android.server.wm.WindowStateAnimator.DRAW_PENDING;
 import static com.android.server.wm.WindowStateAnimator.STACK_CLIP_NONE;
+import android.app.ActivityManager.RunningTaskInfo;
+import android.app.usage.UsageStatsManager;
+import android.app.usage.UsageStats;
+import java.util.SortedMap;
+import java.util.TreeMap;
 
 /** {@hide} */
 public class WindowManagerService extends IWindowManager.Stub
@@ -4365,8 +4370,30 @@ public class WindowManagerService extends IWindowManager.Stub
      */
     boolean updateOrientationFromAppTokensLocked(boolean inTransaction) {
         long ident = Binder.clearCallingIdentity();
+		String pkgName="";
         try {
             int req = getOrientationLocked();
+			UsageStatsManager usm = (UsageStatsManager) mContext.getSystemService(Context.USAGE_STATS_SERVICE);
+            long time = System.currentTimeMillis();
+            List<UsageStats> appList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 1000, time);
+            if (appList != null && appList.size() > 0) {
+                SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
+                for (UsageStats usageStats : appList) {
+                    mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
+                }
+                if (mySortedMap != null && !mySortedMap.isEmpty()) {
+                    pkgName = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
+                }
+            }
+
+			
+			Log.d("PhoneWindowManager","PhoneWindowManager_33_pkgName:"+pkgName);
+			if(pkgName.equals("com.xx")){
+				req =  ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
+			}else {
+				Log.d("PhoneWindowManager","...updateOrientationFromAppTokensLocked");
+			}				
+			
             if (req != mLastOrientation) {
                 mLastOrientation = req;
                 //send a message to Policy indicating orientation change to take

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值