2014-07-09 12 views
0

읽기 : http://code.tutsplus.com/tutorials/reading-nfc-tags-with-android--mobile-17278안드로이드 NFC 튜토리얼에 이어

는 응용 프로그램이 열려 있고 그 이벤트를 처리하는 현재 활동에 경우에만 NFC 요청에 응답 할 수 있다면 궁금하네요? 현재

내가 (응답 활동 내에서) 내 매니페스트에 있습니다 활동에서

<!-- NFC Reader --> 
<intent-filter> 
    <action android:name="android.nfc.action.TAG_DISCOVERED" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

은 내가이되는

// Responds to NFC Device Reader 
resolveIntent(getIntent()); 

그리고

@Override 
public void onNewIntent(Intent intent) { 
    setIntent(intent); 
    resolveIntent(intent); 
} 


private void resolveIntent(Intent intent) { 
    String action = intent.getAction(); 
    if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action) 
      || NfcAdapter.ACTION_TECH_DISCOVERED.equals(action) 
      || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) { 

     Parcelable tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 

     processInformation(tag); 

    } 
} 

RESON을 한 OnCreate 응용 프로그램이이 활동을 직접로드 할 때 우회되는 인증 프로세스.

+0

무슨 일입니까? 현재 코드에서 원하는대로 작동하지 않는 동작은 무엇입니까? –

+0

NFC 칩을 검색하면 활동이 시작됩니다. 대신 NFC 데이터가 열려있을 때 활동을 수집하기를 원합니다. 앱이 열려 있지 않고이 활동에 참여하지 않은 경우 어떤 응답도 원하지 않습니다. – user3217789

+0

그런 다음 활동을 동적으로 등록하려고 시도 할 때마다 매번 호출하지 마십시오. 응용 프로그램이 활성화되지 않은 경우에도 마찬가지입니다. 액티비티가 액티비티 라이프 사이클 라이프 사이클 메소드를 사용하여 처리하는 경우에만 호출됩니다. –

답변

4

저는이 튜토리얼의 저자입니다. 매니페스트에서 IntentFilter를 제거하고 포 그라운드 디스패치 만 구현하면됩니다. 그렇게하면 그렇게 될 것입니다.

+0

환상적. 답변과 자습서를 제공해 주셔서 감사합니다. 매우 유용합니다. – user3217789