2017-03-17 12 views
-2

ヘッドフォンがAndroidデバイスに接続されているかどうかを確認したいだけです。ヘッドフォンがプラグインされているかどうかを確認する

ボタンを押すと、ヘッドフォンが差し込まれているかどうかを確認する必要があります。プラグが差し込まれている場合は、オーディオを再生します。そうでなければ、ヘッドフォンを差し込むトーストを表示します。 。headhonesが接続されるまで何もし

+3

可能な複製を使用することができます(http://stackoverflow.com/questions/2764733/android -checking-if-headphones-are-plugged-in) – nandsito

答えて

1

にあなたは[アンドロイド:ヘッドフォンが接続されているかどうかの確認]のBroadcastReceiver

public class MainActivity extends AppCompatActivity { 
    private MusicIntentReceiver myReceiver; 
    boolean isHeadphoneConnected; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     MusicIntentReceiver myReceiver = new MusicIntentReceiver(); 
     IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG); 
     registerReceiver(myReceiver, filter); 
     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      if(isHeadphoneConnected) 
       Toast.makeText(MainActivity.this,"Headset is plug in",Toast.LENGTH_LONG).show(); 
       else 
       Toast.makeText(MainActivity.this,"Headset is not plug in",Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 
    private class MusicIntentReceiver extends BroadcastReceiver { 
     @Override public void onReceive(Context context, Intent intent) { 
      if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) { 
       int state = intent.getIntExtra("state", -1); 
       switch (state) { 
        case 0: 
         isHeadphoneConnected = false; 

        break; 
        case 1: 
         isHeadphoneConnected = true; 
         break; 
       } 
      } 
     } 
    } 
} 
+0

このクラスの使い方はわかりません...どうすれば私のonclickイベントでこれを使うことができますか?トン –

+0

私の答えを編集するIve。あなたのアクティビティクラスに 'MusicIntentReceiver'を入れ、 'onCreate'メソッドからそのインスタンスを作成します。あなたがボタンをクリックするたびに 'isHeadphoneConnected'フラグをチェックすることができます – Expiredmind

+0

私がこのことをしたときに私のアプリがクラッシュしています..アンドロイド。マニフェストファイルに宣言する権限がありますか? –

関連する問題