えむのメモして満足するLog

どうも私です。

adbから設定を開きまくる

BlueStacksのAndroidの設定は、一部非表示にされていて、以前にAndroid Debug BridgeからAndroidの設定を開く作業をやったはずなのに忘れてしまったのでメモ書きです。

はじめに確認してください

基本的にBlueStacks中心の記事であるが、他のAndroidでもおおよそ通用する手段である。
特殊な手段であるため、非推奨であり、自身で始末できる方向けの内容です。

Android SDK Platform-Toolsのadbがインストール済み&デバイス接続済みの体で書かれてるため、準備を済ませておく。

developer.android.com

予めBlueStacksの環境設定からADBを有効化し、「接続先のアドレス」を必ず確認する。

https://support.bluestacks.com/hc/articles/360058929011?locale=jasupport.bluestacks.com

またアクティビティの呼び出しをする前に何かしら立ち上げ(「ランチャー」やAndroidの「設定」など)、開いた状態を維持させる。つまりスリープ状態にしない
Activity not started, its current task has been brought to the frontと警告が出る場合も同様。

設定のアクティビティを開始する

adbshellを開きます。
お分かりな方はadb shell [COMMAND...]で続けても良いです。

事前に確認していた「接続先のアドレス」を次のコマンドにある<アドレス>と差し替えてから打つ。

adb connect <アドレス>
adb shell

何事も無ければプロンプトが(デバイス名など)$に変わります。


何事があって more than one device/emulator と表示し、プロンプトも変わらない。
そんなときは一度adb devices -lコマンドを打って、先ほど接続したアドレス横にある文字列に「transport_id:<ID>」があるのでそのID(数字)を記憶しておく。

先ほど確認したトランスポートIDを次のコマンドのIDと差し替えてから打つ。

adb -t <ID> shell

BlueStacksだとここから本題。

amコマンドに続いてサブコマンドstartを入力し、オプション-aを使って呼び出したいアクティビティを指定するとAndroid側で何かしらが開きます。
例えばWi-Fi設定を開きたい場合、アクティビティ名はandroid.settings.WIFI_SETTINGSです。BlueStacksなら非表示にされてるね。

am start -a 'android.settings.WIFI_SETTINGS'

他のアクティビティについては次項の「設定のアクティビティ一覧」を参照。

設定のアクティビティ一覧

各項目のCopyボタンで簡単にクリップボードへコピーします。

コピーオプション
アクティビティ 動作 API
android.app.action.ADD_DEVICE_ADMIN バイス管理 ?
android.app.action.CONFIRM_DEVICE_CREDENTIAL - ?
android.app.action.CONFIRM_DEVICE_CREDENTIAL_WITH_USER - ?
android.app.action.SET_NEW_PASSWORD - ?
android.app.action.START_ENCRYPTION (タブレット|スマートフォン)の暗号化 ?
android.appwidget.action.APPWIDGET_BIND - ?
android.appwidget.action.APPWIDGET_PICK ウィジェットを選択 ?
android.bluetooth.adapter.action.REQUEST_DISCOVERABLE - ?
android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST Bluetooth接続リクエス ?
android.bluetooth.device.action.PAIRING_REQUEST - ?
android.bluetooth.devicepicker.action.LAUNCH Bluetoothバイスの選択 ?
android.intent.action.CREATE_SHORTCUT 設定のショートカット ?
android.intent.action.MANAGE_PACKAGE_STORAGE ストレージ使用状況 ?
android.intent.action.PICK_ACTIVITY 操作の選択 ?
android.intent.action.POWER_USAGE_SUMMARY バッテリー ?
android.intent.category.USAGE_ACCESS_CONFIG - 23
android.net.action.PROMPT_UNVALIDATED - ?
android.net.wifi.PICK_WIFI_NETWORK - ?
android.net.wifi.action.REQUEST_ENABLE - ?
android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE - ?
android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT デフォルトのお支払いアプリの設定 ?
android.provider.action.DOCUMENT_ROOT_SETTINGS ストレージの設定 ?
android.provider.extra.APP_PACKAGE - 26
android.provider.extra.BIOMETRIC_AUTHENTICATORS_ALLOWED - 30
android.provider.extra.CHANNEL_FILTER_LIST - 31
android.provider.extra.CHANNEL_ID - 26
android.provider.extra.CONVERSATION_ID - 30
android.provider.extra.EASY_CONNECT_ATTEMPTED_SSID - 30
android.provider.extra.EASY_CONNECT_BAND_LIST - 30
android.provider.extra.EASY_CONNECT_CHANNEL_LIST - 30
android.provider.extra.EASY_CONNECT_ERROR_CODE - 30
android.provider.extra.NOTIFICATION_LISTENER_COMPONENT_NAME - 30
android.provider.extra.SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY - 32
android.provider.extra.SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI - 32
android.provider.extra.SUB_ID - 28
android.provider.extra.SUPERVISOR_RESTRICTED_SETTING_KEY - 33
android.provider.extra.WIFI_NETWORK_LIST - 30
android.provider.extra.WIFI_NETWORK_RESULT_LIST - 30
android.search.action.SEARCH_SETTINGS - 8
android.security.MANAGE_CREDENTIALS - ?
android.settings.ACCESSIBILITY_DETAILS_SETTINGS ユーザー補助 ?
android.settings.ACCESSIBILITY_SETTINGS ユーザー補助 5
android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW 視覚補助 ?
android.settings.ACCOUNT_SYNC_SETTINGS 同期 ?
android.settings.ACTION_APP_NOTIFICATION_REDACTION - ?
android.settings.ACTION_CONDITION_PROVIDER_SETTINGS
android.settings.ZEN_MODE_AUTOMATION_SETTINGS
スケジュール 30
android.settings.ACTION_MEDIA_CONTROLS_SETTINGS メディア ?
android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS バイスとアプリの通知 22
android.settings.ACTION_POWER_MENU_SETTINGS 電源ボタンを長押しする ?
android.settings.ACTION_PRINT_SETTINGS 印刷 19
android.settings.ADD_ACCOUNT_SETTINGS アカウントの追加 8
android.settings.AIRPLANE_MODE_SETTINGS - 3
android.settings.ALL_APPS_NOTIFICATION_SETTINGS アプリの通知 33
android.settings.APN_SETTINGS APN 1
android.settings.APPLICATION_DETAILS_SETTINGS - 9
android.settings.APPLICATION_DEVELOPMENT_SETTINGS 開発者向けオプション1 3
android.settings.APPLICATION_SETTINGS アプリ情報 1
android.settings.APP_LOCALE_SETTINGS - 33
android.settings.APP_MEMORY_USAGE アプリの使用状況 ?
android.settings.APP_NOTIFICATION_BUBBLE_SETTINGS バブル 29
android.settings.APP_NOTIFICATION_SETTINGS - 26
android.settings.APP_OPEN_BY_DEFAULT_SETTINGS アプリ情報 31
android.settings.APP_SEARCH_SETTINGS - 29
android.settings.ASSIST_GESTURE_SETTINGS - ?
android.settings.AUTO_ROTATE_SETTINGS 画面の自動回転 31
android.settings.BATTERY_SAVER_SETTINGS バッテリーセーバー 22
android.settings.BIOMETRIC_ENROLL - 30
android.settings.BLUETOOTH_SETTINGS 接続済みのデバイス 1
android.settings.BUGREPORT_HANDLER_SETTINGS バグレポート ハンドラ ?
android.settings.CAPTIONING_SETTINGS 字幕の設定 19
android.settings.CAST_SETTINGS キャスト 21
android.settings.CHANNEL_NOTIFICATION_SETTINGS 通知のカテゴリ 26
android.settings.CONVERSATION_SETTINGS 会話 ?
android.settings.DARK_THEME_SETTINGS スケジュール ?
android.settings.DATA_ROAMING_SETTINGS - 3
android.settings.DATA_SAVER_SETTINGS データセーバー ?
android.settings.DATA_USAGE_SETTINGS データ使用量 28
android.settings.DATE_SETTINGS 日付と時刻 1
android.settings.DEVICE_INFO_SETTINGS (タブレット|スマートフォン)情報 8
android.settings.DISPLAY_SETTINGS ディスプレイ 1
android.settings.DREAM_SETTINGS スクリーンセーバー 18
android.settings.ENTERPRISE_PRIVACY_SETTINGS 管理対象デバイスの情報 ?
android.settings.FACE_SETTINGS 顔認証 ?
android.settings.FINGERPRINT_SETTINGS 指紋 ?
android.settings.FINGERPRINT_SETUP - ?
android.settings.HARD_KEYBOARD_SETTINGS 物理キーボード 24
android.settings.HOME_SETTINGS - 21
android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS - 24
android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS 電池の最適化 23
android.settings.INPUT_METHOD_SETTINGS 利用可能な画面キーボード 3
android.settings.INPUT_METHOD_SUBTYPE_SETTINGS - 11
android.settings.INTERNAL_STORAGE_SETTINGS ストレージ 3
android.settings.LICENSE サードパーティ ライセンス ?
android.settings.LOCALE_SETTINGS 言語 1
android.settings.LOCATION_SCANNING_SETTINGS 位置情報サービス ?
android.settings.LOCATION_SOURCE_SETTINGS 位置情報 1
android.settings.LOCK_SCREEN_SETTINGS ロック画面 ?
android.settings.MANAGED_PROFILE_SETTINGS 仕事用プロファイルの設定 ?
android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS - 9
android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION すべてのファイルへのアクセス 30
android.settings.MANAGE_ALL_SIM_PROFILES_SETTINGS モバイル ネットワーク 31
android.settings.MANAGE_APPLICATIONS_SETTINGS - 3
android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION すべてのファイルへのアクセス 30
android.settings.MANAGE_APP_OVERLAY_PERMISSION 他のアプリの上に重ねて表示 ?
android.settings.MANAGE_CROSS_PROFILE_ACCESS シングル プロファイル モード ?
android.settings.MANAGE_DEFAULT_APPS_SETTINGS - 24
android.settings.MANAGE_DOMAIN_URLS リンクを開く ?
android.settings.MANAGE_SUPERVISOR_RESTRICTED_SETTING - 33
android.settings.MANAGE_UNKNOWN_APP_SOURCES 不明なアプリのインストール 26
android.settings.MEMORY_CARD_SETTINGS - 3
android.settings.MOBILE_DATA_USAGE モバイルデータ使用量 ?
android.settings.MODULE_LICENSES Google Play システム アップデートのライセンス ?
android.settings.NETWORK_OPERATOR_SETTINGS モバイル ネットワーク 3
android.settings.NETWORK_PROVIDER_SETTINGS ネットワークとインターネット ?
android.settings.NFCSHARING_SETTINGS Android ビーム 14
android.settings.NFC_PAYMENT_SETTINGS 接触型決済 19
android.settings.NFC_SETTINGS 接続の設定 16
android.settings.NIGHT_DISPLAY_SETTINGS 夜間モード 26
android.settings.NOTIFICATION_ASSISTANT_SETTINGS 拡張通知 29
android.settings.NOTIFICATION_HISTORY 通知履歴 ?
android.settings.NOTIFICATION_LISTENER_DETAIL_SETTINGS バイスとアプリの通知 30
android.settings.NOTIFICATION_POLICY_ACCESS_DETAIL_SETTINGS サイレント モードの利用 ?
android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS サイレント モードの利用 23
android.settings.NOTIFICATION_SETTINGS 通知 ?
android.settings.PICTURE_IN_PICTURE_SETTINGS ピクチャー イン ピクチャー ?
android.settings.PREMIUM_SMS_SETTINGS プレミアム SMS へのアクセス ?
android.settings.PRIVACY_SETTINGS プライバシー 5
android.settings.PROCESS_WIFI_EASY_CONNECT_URI - 29
android.settings.QUICK_ACCESS_WALLET_SETTINGS - 30
android.settings.QUICK_LAUNCH_SETTINGS - 3
android.settings.REDUCE_BRIGHT_COLORS_SETTINGS さらに輝度を下げる ?
android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 電池の最適化 23
android.settings.REQUEST_MANAGE_MEDIA メディア管理アプリ 31
android.settings.REQUEST_SCHEDULE_EXACT_ALARM アラームとリマインダー 31
android.settings.REQUEST_SET_AUTOFILL_SERVICE 自動入力サービス 26
android.settings.SECURITY_SETTINGS セキュリティ 1
android.settings.SETTINGS 設定 1
android.settings.SETTINGS_EMBED_DEEP_LINK_ACTIVITY - 32
android.settings.SHOW_ADMIN_SUPPORT_DETAILS - ?
android.settings.SHOW_MANUAL マニュアル ?
android.settings.SHOW_REGULATORY_INFO 規制ラベル 21
android.settings.SHOW_REMOTE_BUGREPORT_DIALOG - ?
android.settings.SHOW_WORK_POLICY_INFO - 30
android.settings.SOUND_SETTINGS 1
android.settings.STORAGE_MANAGER_SETTINGS ストレージの管理 ?
android.settings.SYNC_SETTINGS パスワードとアカウント 3
android.settings.TETHER_PROVISIONING_UI - ?
android.settings.USAGE_ACCESS_SETTINGS 使用状況にアクセスできるアプリ 21
android.settings.USER_DICTIONARY_SETTINGS 単語リスト 3
android.settings.USER_SETTINGS 複数ユーザー ?
android.settings.VIEW_ADVANCED_POWER_USAGE_DETAIL - ?
android.settings.VOICE_CONTROL_AIRPLANE_MODE 無線とネットワーク 23
android.settings.VOICE_CONTROL_BATTERY_SAVER_MODE バッテリー 23
android.settings.VOICE_CONTROL_DO_NOT_DISTURB_MODE サイレント モード 23
android.settings.VOICE_INPUT_SETTINGS アシストと音声入力 21
android.settings.VPN_SETTINGS VPN 24
android.settings.VR_LISTENER_SETTINGS VR ヘルパー サービス 24
android.settings.WEBVIEW_SETTINGS - 24
android.settings.WIFI_ADD_NETWORKS 設定パネル 30
android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER - ?
android.settings.WIFI_DPP_ENROLLEE_QR_CODE_SCANNER - ?
android.settings.WIFI_IP_SETTINGS Wi‑Fi 設定 3
android.settings.WIFI_SAVED_NETWORK_SETTINGS 保存済みネットワーク ?
android.settings.WIFI_SETTINGS Wi-Fi 1
android.settings.WIRELESS_SETTINGS ネットワークとインターネット 1
android.settings.ZEN_MODE_EVENT_RULE_SETTINGS - ?
android.settings.ZEN_MODE_ONBOARDING サイレント モードの通知設定を変更しますか? ?
android.settings.ZEN_MODE_PRIORITY_SETTINGS - 26
android.settings.ZEN_MODE_SCHEDULE_RULE_SETTINGS - ?
android.settings.ZEN_MODE_SETTINGS サイレント モード ?
android.settings.action.APP_USAGE_SETTINGS - 29
android.settings.action.MANAGE_OVERLAY_PERMISSION 他のアプリの上に重ねて表示 23
android.settings.action.MANAGE_WRITE_SETTINGS システム設定を変更できるアプリ 23
android.settings.extra.battery_saver_mode_enabled - 23
android.settings.extra.do_not_disturb_mode_enabled - 23
android.settings.extra.do_not_disturb_mode_minutes - 23
android.settings.metadata.USAGE_ACCESS_REASON - 23
android.settings.panel.action.INTERNET_CONNECTIVITY 設定パネル ?
com.android.credentials.INSTALL - ?
com.android.settings.ACCESSIBILITY_COLOR_SPACE_SETTINGS 色補正 ?
com.android.settings.BATTERY_SAVER_SCHEDULE_SETTINGS スケジュールの設定 ?
com.android.settings.BLUETOOTH_DEVICE_DETAIL_SETTINGS バイスの詳細 ?
com.android.settings.GESTURE_NAVIGATION_SETTINGS ジェスチャーの設定 ?
com.android.settings.MONITORING_CERT_INFO - ?
com.android.settings.SEARCH_RESULT_TRAMPOLINE - ?
com.android.settings.SETUP_LOCK_SCREEN 画面ロックを選択 ?
com.android.settings.TRUSTED_CREDENTIALS 信頼できる認証情報 ?
com.android.settings.TTS_SETTINGS テキスト読み上げの設定 ?
com.android.settings.USER_DICTIONARY_INSERT 単語リスト ?
com.android.settings.WIFI_DIALOG - ?
com.android.settings.WIFI_TETHER_SETTINGS Wi-Fi アクセス ポイント ?
com.android.settings.action.FACTORY_RESET 全データを消去(出荷時リセット) ?
com.android.settings.action.SUPPORT_SETTINGS ヒントとサポート ?
com.android.settings.wifi.action.NETWORK_REQUEST - ?

API = 追加された時の API レベル
BlueStacksのインスタンスにインストールできるOSとそのAPI レベルは2023年5月時点で次の通り。

developer.android.com

これ以下、あるいは同等のAPI レベルであればアクティビティを呼び出せる可能性がある。表についてはAndroid 12がベースで、非推奨やAndroid 14などは除外した。

余談であるがメソッド?を直接指定して呼び出す方法もある。謎。 → am start 'com.android.settings/.Settings$WirelessSettingsActivity'
またBlueStacksからAndroidの設定呼び出しとandroid.settings.SETTINGSで呼び出す設定の画面が違う。少々の違いがあるだけで非表示項目はどちらも変わらない。 → com.bluestacks.settings/.SettingsActivity

色々おかしいのは未検証のものが多い為で、正しい情報を知りたければ公式ドキュメント読むのが正解。

developer.android.com

はてなブログさんへ2


  1. 「開発者向けオプション」を呼び出してもActivity not started, unable to resolve Intentとなる場合は、オプションを有効化する必要があります → https://developer.android.com/studio/debug/dev-options?hl=ja
  2. 表の中に注釈入れると注釈が消える、複数の注釈を入れると消える、アンカーが全部一緒になる不具合がありますので修正お待ちしてます