3

NFCデバイス Nr.1 のアプリからデバイス Nr.2 のアプリにテキスト レコードを送信するために使用します。次に、デバイスがタッチされ、両方のデバイスで「タッチしてビーム」UI がポップアップします。デバイス番号 1 (ペアの一部を送信) でメッセージをタッチして送信すると、メッセージが送信され、すべて正常に動作します。しかし、デバイス Nr.2 (メッセージを受信する必要があります) で「タッチしてビーム」UI をタッチすると、デバイス Nr.2 でアプリが表示されます。1 がリロードされます。Logcat には何も問題はなく、エラーも表示されません。その場合、アプリは何らかの空のNFCメッセージを受け取りますか? しかし、なぜそれについて何もしないのですか?リロードする理由 私は使用してForegroundDispatchおり、マニフェストなしでプログラムで「テキスト/プレーン」フィルターを作成しています。

この状況をどのように処理すれば、ユーザーは「タッチしてビーム」UI の間違った側を押すのでしょうか??

4

1 に答える 1

0

アプリで Android ビームを設定しない場合、ビーム時の Android のデフォルトの動作は、他のデバイスに同じアプリを開くように指示することです (アプリと同じパッケージ名を持つアプリの MAIN/LAUNCHER インテントをフィルタリングする最初のアクティビティ)ソース デバイスで)、またはアプリがインストールされていない場合は、Play ストアの一覧を開きます。これは、Beam 経由で AAR (+ Play ストア リンク?) を送信することによって行われます。

したがって、あなたの場合、デバイス 2 で Beam UI をクリックすると、AAR がデバイス 1 に送信されます。その結果、アプリはデバイス 1 で (再) 開かれます。これを克服するには、次のことを実行できます。 :

  1. デバイス 1 のアクティビティのフォアグラウンド ディスパッチを有効にして、受信した NDEF メッセージがアプリによってすぐに処理されるようにします。ただし、これが Beam UI と衝突するかどうかはわかりません。
  2. Beam API を使用して、デバイス 2 から送信された NDEF メッセージを AAR を含まないものに変更します。
于 2014-04-24T11:06:53.623 に答える