Android 11.0 删除状态栏的自动旋转功能

路径:frameworks/base/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java

思路:下拉菜单里的图标都是通过循环一个个 put 创建的,那么我们只要在 put 到旋转图标时拦截它即可

newTiles.put(tileSpec, tile);		

//如1处,判断即将要 put 的是旋转图标时就返回!

                if (tileSpec.equals("rotation"))
                    continue;   

源码:



 @Override
    public void onTuningChanged(String key, String newValue) {
    
    
    		//1
 ++               if (tileSpec.equals("rotation"))
 ++                   continue;    
                try {
    
    
                    tile = createTile(tileSpec);
                    if (tile != null) {
    
    
                        tile.setTileSpec(tileSpec);
                        if (tile.isAvailable()) {
    
    
                            newTiles.put(tileSpec, tile);		//put
                            mQSLogger.logTileAdded(tileSpec);
                        } else {
    
    
                            tile.destroy();
                            Log.d(TAG, "Destroying not available tile: " + tileSpec);
                            mQSLogger.logTileDestroyed(tileSpec, "Tile not available");
                        }
                    }
                } catch (Throwable t) {
    
    
                    Log.w(TAG, "Error creating tile for spec: " + tileSpec, t);
                }
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_27494201/article/details/125148185