2017-03-17 12 views
-2

Ich möchte nur überprüfen, ob die Kopfhörer in das Android-Gerät eingesteckt sind.Überprüfen Sie, ob der Kopfhörer in Android-Telefon eingesteckt ist

Dann sollte ich per Knopfdruck prüfen, ob die Kopfhörer eingesteckt sind. Wenn sie eingesteckt sind, dann würde ich einen Ton abspielen, sonst würde ich einen Toast zum Einstecken der Kopfhörer anzeigen, dh würde ich nicht alles tun, bis die headhones angeschlossen sind

+3

Mögliche Duplikat verwenden können. [Android: Überprüfen, ob die Kopfhörer sind angeschlossen] (http://stackoverflow.com/questions/2764733/android -checking-wenn-Kopfhörer-sind-eingesteckt-in) – nandsito

Antwort

1

Sie 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

Ich weiß nicht, wie man diese Klasse verwendet ... ich meine, wie könnte ich das in Onclick-Ereignis meiner aber verwenden Ton –

+0

Ich bearbeite meine Antwort. Setzen Sie 'MusicIntentReceiver' in Ihre Aktivitätsklasse und erstellen Sie dann die Instanz von 'onCreate'. Dann, wann immer du auf Knopf klickst, kannst du das 'isHeadphoneConnected'Flaggen überprüfen – Expiredmind

+0

Meine APP stürzt ab, als ich das tat. Gibt es eine Erlaubnis, in android.manfest Datei erklärt zu werden –

Verwandte Themen