2017-12-07 6 views
2

私は1つのアクティビティに対してAndroid Payアプリを抑制する方法を探しています。 iOSはrequestAutomaticPassPresentationSuppressionWithResponseHandlerメソッドを持っています。これは、アプリケーションがフォアグラウンドにある間、これを抑止するApple Payを可能にします。これをAndroidで実現しようとしています。Android Payをアプリ内で無効にすることはできますか?

foreground dispatchを実装しました。ほとんどのNFCタグでうまく動作します。タグはアクティビティで検出され、無視されます。ただし、非接触決済機が検出されると、代わりにAndroid Payアプリが起動され、自分のアクティビティでonNewIntentコールを受け取ることはありません。

card emulationのアプリを実装して、これらのリクエストを無視する以外は、いくつかの理由で実際にはオプションではありませんが、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()を介して受信し(無視)ドロップ可能性があります。

関連する問題