2014-09-13 5 views
2

나는 BroadcastReceiver를 보유하고 있으며, 내 목표는 헤드셋 단추를 길게 누르는 것입니다. 다른 버전을 시도했지만 아무도 작동하지 않았습니다. 이제는받은 행동을 확인하려고합니다. 정상적으로 클릭하면 0 (KeyDown) 및 1 (KeyUp) 동작을 볼 수 있습니다. 클릭하고 누르고 있으면 아무 키나 아래로도 아무 것도 표시되지 않습니다. 뭐가 문제 야?헤드셋 단추를 길게 누르지 않아도 아무런 반응이 없음

@Override 
public void onReceive(Context context, Intent intent) { 
    if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { 
     KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
     Log.e("action",""+event.getAction()); 
     ... 
    } 
} 

필요한 경우 나는 더 많은 코드를 게시 할 수 있습니다,하지만 난 그것을

안드로이드 4.3와 함께 S4에서 실행 관련라고 생각하지 않았다. 중요한지 확실하지 않으면 S-Voice가 일시 중지되고 Google Now가 사용 중지됩니다. 화면이 꺼졌다가 길게 클릭하면 메뉴가 표시됩니다. Google 검색/자동 응답 기능을 사용하여 길게 누르십시오.

답변

1

매니페스트에서이 코드를 길게 누르면 제어 할 수 있다고 생각합니다. . 그러면 길게 누르는 앱을 선택할 수있는 대화 상자가 열립니다. 전화가 잠겨있을 때 작동했지만 휴대폰이 잠겼을 때 작동하지 않습니다. 대화 상자가 튀어 나오지만 전화 잠금을 해제하면 사라집니다. 희망이 좀 도와 줄 수 있습니다.

키는 브로드 캐스트 리시버를 구현하는 대신 "활동"을 여는 것입니다.

<activity 
      android:name="packagename.activityname" 
       android:launchMode="singleInstance" 
       android:showOnLockScreen="true"> 
      <intent-filter android:priority="2147483647"> 
       <action android:name="android.speech.action.WEB_SEARCH" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter android:priority="2147483647"> 
       <action android:name="android.speech.action.VOICE_SEARCH_HANDS_FREE" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="com.sec.action.SVOICE" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

나는 이것을 Kitkat에서 테스트했습니다. 이전 버전에서는 어떤 일이 일어나는지 전혀 알 수 없습니다.