アプリに NFC/Beam 機能を追加していますが、可能な限り自動的に動作するようにしたいと考えています。送信側の「Touch To Beam」画面と、受信側の「新しいタグのスキャン」画面をなくしたいと考えています。基本的には、Samsung のコマーシャルのように機能させたいと思っています!!! 「Touch To Beam」画面を取り除く方法がないように見えることをstackoverflowで読みましたが、誰かが更新された情報を持っているか、レシーバー画面を削除する方法を知っていることを願っています. ありがとう!
2 に答える
送信側
2 つの Android (4.0+) デバイス間で NFC ピアツーピア通信 (別名 Android ビーム) を使用する場合、ビーム UI を回避する方法はありません。そのため、「Touch to Beam」なしではデータを転送することはできません。
Android ビーム (事実上 Android 2.3.3-2.3.7) より前は、これはフォアグラウンド NDEF プッシュ ((a) 非推奨であり、(b) Beam を介して実装された Android 4.0 以降) を介して可能でした。その場合、NDEF メッセージは「Touch to Beam」ウィンドウなしですぐに転送されます。
Android 4.4 以降では、ビーム UI を使用せずに (実際には Android ビームとピアツーピア モードをまったく使用せずに) NFC を介して 2 つの Android デバイス間で通信する可能性があります。非接触スマートカードをエミュレートする HCE と、1 つのデバイスがリーダーモード API (これは 4.4 で導入されたリーダーモード API でのみ機能するため、両方のデバイスが 4.4 以降である必要があります) を使用して、エミュレートされたスマートカードと通信できます。
受信側
Beam を介して NDEF メッセージを送信すると、少なくとも受信側に必要な処理を実行させることができます。その場合、適切な NDEF_DISCOVERED インテント フィルター (送信された NDEF メッセージの最初の NDEF レコードのレコード タイプ/データ タイプと一致するもの) をアプリの AndroidManifest.xml に登録する必要があります。
foregroundDispatch http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.htmlを介して手動でビーミングを処理 できます。これにより、アプリが自動的に送信できるようになります。
受信に関しては、アクティビティを使用してインテントをキャッチし、処理のためにサービスに転送できます。