2012-04-12 11 views

Antwort

3

verwenden Wenn Sie diese aus einer Tätigkeit im Vordergrund zu hören versuchen, verwenden onKeyDown() und für KEYCODE_MEDIA_PLAY_PAUSE beobachten.

Verwenden Sie eine BroadcastReceiver für ACTION_MEDIA_BUTTON, wenn Sie versuchen, dieses Ereignis aus dem Hintergrund zu hören (z. B. ein Dienst, der Musik spielt).

+0

Es ist mein Rundfunkempfänger, aber es funktioniert nicht, was ist los? public final BroadcastReceiver hReceiver = new BroadcastReceiver() { \t \t public void OnReceive (Context Kontext Intent Absicht) { \t String action = intent.getAction(); \t \t \t \t Absicht mediaButtonIntent = neue Absicht (Intent.ACTION_MEDIA_BUTTON); \t \t if (mediaButtonIntent.equals (action)) \t { \t \t adapter.add ("Klick"); \t \t} \t}; – PatLas

+0

@ user1320033: Sie müssen Ihren Aktions-String nicht testen, wenn Sie diesen 'BroadcastReceiver' nur einmal mit dem richtigen' IntentFilter' verwenden. Außerdem testen Sie es falsch. – CommonsWare

+0

Also, was soll ich tun, um es richtig zu überprüfen? – PatLas

0

Sie können ACTION_MEDIA_BUTTON Absicht Lesen Sie mehr über Link Hope this Hilfe

+0

Es ist mein Rundfunkempfänger, aber es funktioniert nicht, was ist los? public final BroadcastReceiver hReceiver = new BroadcastReceiver() { \t \t public void OnReceive (Context Kontext Intent Absicht) { \t String action = intent.getAction(); \t \t \t \t Absicht mediaButtonIntent = neue Absicht (Intent.ACTION_MEDIA_BUTTON); \t \t if (mediaButtonIntent.equals (action)) \t { \t \t adapter.add ("Klick"); \t \t} \t}; – PatLas

3

Momentan benutze ich unter dem Code Headset Knopf Klick Ereignis es funktioniert für mich. versuchen Sie diesen Code

enter code here 
//Receiver 

public class MediaButtonEventReceiver extends BroadcastReceiver { 

    private static final String TAG = "MediaButtonIntentReceiv"; 
    public MediaButtonIntentReceiver() { 
     super(); 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String intentAction = intent.getAction(); 
     if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { 
      return; 
     } 
     KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
     if (event == null) { 
      return; 
     } 

     int action = event.getAction(); 
     if (action == KeyEvent.ACTION_DOWN) { 
      // do something 
      Log.e(TAG, "onReceive: "); 
      Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show(); 
     } 


     abortBroadcast(); 
    } 
} 

//Write this code in onCreateview in your activity 

     IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); 
     MediaButtonIntentReceiver r = new MediaButtonIntentReceiver(); 
     filter.setPriority(1000); //this line sets receiver priority 
     registerReceiver(r, filter); 

// manifest.xml 
<receiver android:name=".MediaButtonIntentReceiver"> 
      <intent-filter > 
       <action android:name="android.intent.action.MEDIA_BUTTON"/> 
      </intent-filter> 
     </receiver> 
+2

es funktioniert für mich –