Android 11.0 は、パッケージ名に基づいてデフォルトでアプリにフローティング ウィンドウのアクセス許可を付与します

1。概要

  11.0 romシステムの開発では、アプリ内でフローティングウィンドウ権限を付与することも一般的な機能ですが、デバイス製品のプレハブアプリではデフォルトでフローティングウィンドウ権限を付与する必要があるため、動的にフローティングウィンドウ権限を付与する必要はありません。アプリ内のフローティング ウィンドウのアクセス許可
. さて、この機能を実現するためにこれを分析してみましょう

2. パッケージ名に応じて、デフォルトでアプリにフローティング ウィンドウ権限を付与するコア クラス

    packages\apps\Settings\src\com\android\settings\applications\appinfo\DrawOverlayDetails.java
    frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java

3. パッケージ名に従って、コア機能の分析とアプリの実装、デフォルトで付与されるフローティング ウィンドウ権限

システムでは、アプリのフローティング ウィンドウ権限を動的に申請する場合、常にシステムが設定したフローティング ウィンドウ ページにジャンプし、手動でフローティング ウィンドウ権限を開きます。このとき、アプリはフローティング ウィンドウ機能を使用できます
。のため、システムから設定する必要があります。

3.1 フローティングウィンドウ機能におけるDrawOverlayDetails.javaの解析

     public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
            OnPreferenceClickListener {
     
        private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
        private static final String LOG_TAG = "DrawOverlayDetails";
     

おすすめ

転載: blog.csdn.net/baidu_41666295/article/details/130690855