私はこの方法は私のデバイス上で動作しますが見つかりました:
実行]コマンドのようなものを作る必要があります
adb shell dumpsys activity broadcasts | grep microphone
:最後の行は、粘着性の放送内で
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
extras: Bundle[{name=h2w, state=0, microphone=1}]
extras: Bundle[{name=h2w, state=1, microphone=1}]
Bundle[{name=h2w, state=1, microphone=1}]
をダンプのセクション、変更されるまで同じままのブロードキャスト
我々はtail
を使用して、最後の行を取ると、それを解剖のであれば、それはヘッドセットの現在の状態が含まれています
adb shell dumpsys activity broadcasts | grep microphone | tail -n 1
出力:
Bundle[{name=h2w, state=1, microphone=1}]
state
整数を指し、マイクが入っているかどうかにかかわらず、何かがヘッドホンジャックに差し込まれているかどうかを確認します。プラグが差し込まれていない場合は0、差し込まれている場合は1
microphone
整数は、最後に接続されたヘッドセットにもマイクが含まれているかどうかを示します。 noは0、yesは1です。
シナリオ
ヘッドホンの正常ペアが現在接続されている場合、出力は次のようになります
Bundle[{name=h2w, state=1, microphone=0}]
マイク付きヘッドセットが現在の出力に接続されている場合
Bundle[{name=h2w, state=1, microphone=1}]
何が接続されていない場合、出力はいずれかです:いくつかの余分な値に
Bundle[{name=h2w, state=0, microphone=0}]
または
Bundle[{name=h2w, state=0, microphone=1}]
オーディオマネージャの基準点:http://developer.android .com/reference/android/media/AudioManager.html#ACTION_HEADSET_PLUG 状態 - プラグがない場合は0、プラグがある場合は1。 名前 - ヘッドセットタイプ、人間が読める文字列 マイク - ヘッドセットにマイクがある場合は1、そうでない場合は0 多分これらにアクセスする必要がありますか? – eewael