2017-12-07 3 views
2

하나의 활동에 대해 Android Pay 앱을 표시하지 않을 방법을 찾고 있습니다. iOS는 requestAutomaticPassPresentationSuppressionWithResponseHandler 방법을 사용합니다.이 방법은 앱이 포 그라운드에있을 때 Apple Pay를 억제하는 것입니다. Android에서이 작업을 수행하려고합니다.인앱에서 Android Pay를 사용 중지 할 수 있나요?

foreground dispatch을 구현했습니다. 이것은 대부분의 NFC 태그에서 잘 작동합니다. 태그는 활동에서 감지 된 다음 무시됩니다. 그러나 비접촉 결제 시스템이 감지되면 Android Pay 앱이 대신 실행되며 내 활동에서 onNewIntent 통화를받지 못합니다.

card emulation을 수행하도록 앱을 구현하는 것 외에 몇 가지 이유로 실제로는 선택할 수없는 이러한 요청을 무시하고 Android Pay를 억제하기 위해 할 수있는 다른 방법이 있습니까? (가장 인기있는 Android Pay를 중심으로하는 기타 유사한 결제 앱)

+0

리더 모드 ('enableReaderMode()')를 사용해 보셨나요? –

+0

NFC 유형에 대한 플래그를 추가하는 데 필요한 시도가되었지만 지금은 작동합니다! :) 고맙습니다. 문서에서 완전히 빠진 내용은 javadoc 이외에 언급되지 않았습니다. – sigute

답변

1

Android 4.4 이상에서는 특정 태그 기술에 대해 리더 모드 API를 사용하여 기기를 명시 적으로 리더/라이터 모드로 전환 할 수 있습니다. 이렇게하면 다른 NFC 모드 (피어 - 투 - 피어 모드 ("Android Beam") 및 카드 에뮬레이션 모드)가 비활성화됩니다.

nfcAdapter.enableReaderMode(this, new NfcAdapter.ReaderCallback() { 
    public void onTagDiscovered(Tag tag) { } 
}, NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK, null); 

당신은 또한 발견 된 태그를 무시해야하기 때문에

, 당신은 단순히 태그 핸들은 onTagDiscovered()를 통해 수신 드롭 (무시) ​​할 수있다.

관련 문제