2021/11/03

Android 12のクイック設定にWi-Fiとモバイルデータを追加する (エミュレータでの話)

2022/08/18 追記

Android 13ではクイック設定のWi-Fiとモバイルデータは分離できなくなりました。

変更時のコミット

https://android.googlesource.com/platform/frameworks/base/+/29c2e807e010ca0229e9db1d036649f3b7c21134%5E%21/

2022/08/18 追記ここまで

以下Android 12での内容です。


ここではAndroid Studioのエミュレータを使用しています。

実機では確認していませんので実機で設定を変更される方は自己責任でお願いします。

2021/11/12 追記: reddit への投稿によると実機でもできるようです。

2022/02/11 追記 ここから

2022/02/08 (日本時間) にリリースされた Pixel 3のアップデート (ビルド番号 SP1A.210812.016.C1) では2021/11のセキュリティパッチが取り込まれていないので、以前と同じ方法

$ adb shell settings put secure sysui_qs_tiles "wifi,cell,$(settings get secure sysui_qs_tiles)"

のみでWi-Fiとモバイルデータをクイック設定に追加できます。

追記ここまで


Android 12になってからクイック設定のWi-Fiとモバイルデータが1つにまとめられインターネットとなりました。Android 12にアップデートした直後は

9To5Google - How to bring back the Wi-Fi and mobile data toggles on Android 12

XDA - Google explains the reasoning behind Android 12’s Internet Quick Settings tile

で紹介されている方法でできていたのですが、2021/11のセキュリティパッチを適用するとこの方法が使えなくなるようです。

コミットログを見てみると

Pixel 3a, Pixel 3a XL, Pixel 4, Pixel 4a, Pixel 4a (5G), Pixel 4 XL, Pixel 5, Pixel 5a (5G)
https://android.googlesource.com/platform/frameworks/base/+/39627225836a334d785e2176ca517effe806ec3a

Pixel 6, Pixel 6 Pro
https://android.googlesource.com/platform/frameworks/base/+/a8c61c93a4adc401781424ff87167c8f2b02c332

でクイック設定の表示する項目でWi-Fi、モバイルデータがあった場合、削除するようになっています。

9To5Google、XDAで紹介された方法ではAndroid Studioのエミュレータ (Android 12 ビルド番号 SE1A.211012.001) ではWi-Fi、モバイルの追加ができなかったので、エミュレータも恐らくこのパッチが適用されているのだろう、ということで差分からクイック設定にWi-Fi、モバイルデータを追加できないか確認してみます。


差分を見ると FeatureFlags というのが追加されています。さらに

https://android.googlesource.com/platform/frameworks/base/+/a8c61c93a4adc401781424ff87167c8f2b02c332/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java#519

https://android.googlesource.com/platform/frameworks/base/+/a8c61c93a4adc401781424ff87167c8f2b02c332/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java#124

で featureFlags.isProviderModelSettingEnabled()

https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-12.0.0_r12/packages/SystemUI/src/com/android/systemui/statusbar/FeatureFlags.java#107

は FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL) を返しているだけなので

https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-12.0.0_r12/core/java/android/util/FeatureFlagUtils.java#89

を false で返すことができれば、Wi-Fi、モバイルデータが削除されずに済みそうです。


最初に SETTINGS_PROVIDER_MODEL (= settings_provider_model)の値を確認。

$ adb shell settings get global settings_provider_model

エミュレータでは null (キーが無い) でした。

次に SETTINGS_PROVIDER_MODEL の値を false に設定します。

$ adb shell settings put global settings_provider_model false

次にクイック設定にWi-Fi (wifi) とモバイルデータ (cell) を追加。

$ adb shell settings put secure sysui_qs_tiles "wifi,cell,$(settings get secure sysui_qs_tiles)"

コマンド実行後、クイック設定を開く。(Wi-Fi (wifi) とモバイルデータ (cell) が追加されている)
並び替えたい場合ここで行う。

最後に SETTINGS_PROVIDER_MODEL の値を元に戻す。(エミュレータでは SETTINGS_PROVIDER_MODEL のキーは無かったので削除)

$ adb shell settings delete global settings_provider_model

SETTINGS_PROVIDER_MODEL を削除したのは設定アプリでこの値を参照しているのがいくつかあったので初期状態に戻すためです。


補足: SETTINGS_PROVIDER_MODEL のキーを削除しているので、端末の再起動、クイック設定の並び替えを行うとWi-Fi、モバイルデータの項目が消えます。


最後にもう一度

実機では確認していませんので実機で設定を変更される方は自己責任でお願いします。

参考: Connectivity User Interface


2021/10/12

回転提案ボタンの消し方

回転提案ボタン(下の画像の矢印)の消し方

詳しくは Android Open Source Project の 画面の回転の提案 を参照。


回転提案ボタンを非表示にするにはPCから

$ adb shell settings put secure show_rotation_suggestions 0


回転提案ボタンを表示する(元の設定に戻す)には、デフォルトではshow_rotation_suggestionsというキーはないので

$ adb shell settings delete secure show_rotation_suggestions

でキーを削除するか

$ adb shell settings put secure show_rotation_suggestions 1

で値を1にする。