1

私は近年Androidにプログラムしていますが、何か疑問に思っています:

ヘッドフォンの存在を検出する方法は?
方法はありますが、isWiredHeadsetOn()うまくいきません。

私はそれを試しましたが、うまくいきません:

AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE);
Log.i("am.isWiredHeadsetOn()", am.isWiredHeadsetOn() + "");

if (am.isWiredHeadsetOn()) {
   //code
}

ありがとうございます(つづりを間違えたらごめんなさい、私はフランス人です)

4

3 に答える 3

1

Marshmallow 以上で OK であれば、AudioDeviceCallbackが探しているものかもしれません。AudioManager と連携し、何かが接続および切断されたときに通知します。

于 2016-12-14T15:25:58.873 に答える
0

AudioManager.isWiredHeadsetOn() は正しいことのように見えました。Android開発者ドキュメントによると:

Checks whether a wired headset is connected or not.

This is not a valid indication that audio playback is actually over the wired headset as audio routing depends on other conditions.

Returns
true if a wired headset is connected. false if otherwise

しかし :

  • 関連する権限をマニフェストに追加する必要があります (MODIFY_AUDIO_SETTINGS)
  • この投稿によると、Bluetooth ヘッドセットではうまく動作しません。
于 2015-03-29T18:56:25.190 に答える