2013-07-06 2 views
0

내 애플리케이션에서 블루투스 장치 버튼 클릭을 감지해야합니다. 나는 많은 stackoverflow 링크를 따라 갔지만 나를 위해 작동하지 않습니다.안드로이드 앱에서 블루투스 통화/미디어 버튼 누름을 감지하는 방법

<receiver android:name=".RemoteControlReceiver" >  
    <intent-filter>  
     <action android:name="android.intent.action.MEDIA_BUTTON" />  
     <category android:name="android.intent.category.DEFAULT"/>  
    </intent-filter>  
</receiver> 

중 하나가 밖으로 방법을 제안 할 수 있습니다 : 아래 그림과 같이

나는 방송 수신기를 사용하고 있습니다 :

public class RemoteControlReceiver extends BroadcastReceiver {  
    @Override  
    public void onReceive(Context context, Intent intent) {  
     if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {  
      KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);  
      if (KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) {  
       //call my method  
      }  
     }  
    }  
} 

를 다음과 같이 내 매니페스트는? 미리 감사드립니다.

+0

이봐, 난뿐만 아니라 일에 대한 솔루션을 찾고있다 그리고이 링크는 나를 위해 일한이, 유 피난처 경우 보라 아직 그것을 해결 http://stackoverflow.com/questions/6287116/android-registering-a-headset-button-click-with-broadcastreceiver – moltencrap

답변

0

API 레벨이 11 이상이 되었습니까? KEYCODE_MEDIA_PLAY 코드가 API 레벨 11에 추가되었습니다. KEYCODE_MEDIA_PLAY_PAUSE 코드는 API 레벨 3 이후에 존재합니다.

또한 카테고리를 지정하지 않고 의도 필터를 구성하려고 시도 했습니까?

RemoteControlReceiver 클래스가 응용 프로그램의 루트 패키지에 있습니까? ".RemoteControlReceiver"를 찾을 수 없었을 수 있습니다.

그 외의 경우, 나는 당신이 잘못된 일을 할 수있는 곳을 볼 수 없습니다.

일부 게시물에서 registerMediaButtonEventReceiver 및 unregisterMediaButtonEventReceiver를 호출해야 할 수도 있습니다. 이거 해봤 니?

audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
componentName = new ComponentName(getPackageName(), 
    RemoteControlReceiver.class.getName()); 
audioManager.registerMediaButtonEventReceiver(componentName); 

및 등록 해제 :

등록하려면

audioManager.unregisterMediaButtonEventReceiver(componentName);