15

メソッドAudioManager.isWiredHeadsetOn()は API レベル 14 から廃止されました。有線ヘッドセットが接続されているかどうかをどのように検出するのですか?

4

6 に答える 6

21

ドキュメントの非推奨メッセージには次のように記載されています。

ヘッドセットが接続されているかどうかを確認するためにのみ使用します。

したがって、有線ヘッドセットが接続されているかどうかを確認するために使用し続けても問題ないと思いますが、オーディオがルーティングされているか、それを介して再生されているかどうかを確認する必要はありません。

于 2013-01-18T15:03:12.283 に答える
0
IntentFilter iFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
Intent iStatus = context.registerReceiver(null, iFilter);
boolean isConnected = iStatus.getIntExtra("state", 0) == 1;

私は、このコードがどのバージョンの andorid プラットフォームで使用できるかを知っています。Android 8 では機能しません。結果 iStatus は null です。

于 2020-07-15T01:12:56.570 に答える
0

それは私にとって正しく機能します:

if(context.registerReceiver(null, new IntentFilter(Intent.ACTION_HEADSET_PLUG)).getIntExtra("state", 0)==1){
//if(audioManager.isWiredHeadsetOn()){
    System.out.println("Headset is wiredOn");
}
else{
    System.out.println("Headset is not wiredOn");
}
于 2019-10-04T22:20:29.130 に答える
-1

Bluetooth接続のステータスを見つけるには、ブロードキャストレシーバーを使用する必要があります。

ここに良い例があります

于 2014-03-25T08:11:41.813 に答える