ユーザーがヘッドフォン(有線とBluetoothの両方)を抜いたときに、現在実行中のMusicPlayerを停止したい。
私はいくつかの投稿に出くわしました:
isWiredHeadsetOn(), isBluetoothA2dpOn()
提案されています。
しかし、Android のドキュメントによると、 isWiredHeadsetOn() は非推奨です。どの代替手段を使用する必要がありますか?
ありがとう
ユーザーがヘッドフォン(有線とBluetoothの両方)を抜いたときに、現在実行中のMusicPlayerを停止したい。
私はいくつかの投稿に出くわしました:
isWiredHeadsetOn(), isBluetoothA2dpOn()
提案されています。
しかし、Android のドキュメントによると、 isWiredHeadsetOn() は非推奨です。どの代替手段を使用する必要がありますか?
ありがとう
ドキュメントから:
isWiredHeadsetOn()
- このメソッドは非推奨です。ヘッドセットが接続されているかどうかを確認するためにのみ使用します。
ドキュメントの表現は不十分ですが、あなたがしていることにはまだ推奨されているようです
アプリで AudioManager.ACTION_AUDIO_BECOMING_NOISY イベントを使用します。カスタム ブロードキャスト レシーバーを作成します。
private class HeadsetIntentReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context cntx, Intent intent)
{
String action = intent.getAction();
if(action.compareTo(AudioManager.ACTION_AUDIO_BECOMING_NOISY) == 0)
{
}
}
}; /* end HeadsetIntentReceiver */
次に受信者を登録します。
headsetReceiver = new HeadsetIntentReceiver();
mIntentFilter = new IntentFilter();
mIntentFilter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
mParentActivity.registerReceiver(headsetReceiver, mIntentFilter);
後で登録を解除することを忘れないでください。
ACTION_HEADSET_PLUG ブロードキャスト イベントへの登録を提案している投稿を読みました。
どうやら次から状態を取得できます。
ドキュメントによると、非推奨ですが、ヘッドセットが接続されているかどうかを確認するためだけに使用することをお勧めします。うまく使えばいい。