3

ユーザーがヘッドフォン(有線とBluetoothの両方)を抜いたときに、現在実行中のMusicPlayerを停止したい。

私はいくつかの投稿に出くわしました:

isWiredHeadsetOn(), isBluetoothA2dpOn()

提案されています。

しかし、Android のドキュメントによると、 isWiredHeadsetOn() は非推奨です。どの代替手段を使用する必要がありますか?

ありがとう

4

4 に答える 4

2

ドキュメントから:

isWiredHeadsetOn()- このメソッドは非推奨です。ヘッドセットが接続されているかどうかを確認するためにのみ使用します。

ドキュメントの表現は不十分ですが、あなたがしていることにはまだ推奨されているようです

于 2012-06-25T18:15:16.563 に答える
1

アプリで 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);

後で登録を解除することを忘れないでください。

于 2013-06-20T06:58:59.640 に答える
1

ACTION_HEADSET_PLUG ブロードキャスト イベントへの登録を提案している投稿を読みました。

どうやら次から状態を取得できます。

于 2012-06-25T18:14:57.207 に答える
0

ドキュメントによると、非推奨ですが、ヘッドセットが接続されているかどうかを確認するためだけに使用することをお勧めします。うまく使えばいい。

于 2012-06-25T18:17:19.590 に答える