昨日、Google IOについてNFCについて語りましたが、今日は楽しいことをやろうとしています。Android NFCがICSと連携していません
現在、私はGalaxy Nexus(ICS 4.0.2)とNexus S(ICS 4.0.3)を持っています。私もいくつかのコメントで流れを理解するために、このハウツーを以下のよhttp://nfc.android.com/StickyNotes.zip
::私は何をしようとしているhttp://www.jessechen.net/blog/how-to-nfc-on-the-android-platform/
はであり、私はその話のサンプルアプリケーションをインストールした 電話から別の方法にメッセージを送信し、edittextの内容を変更します(例のように!)。
NFCメッセージは出ていますが、他の電話はそれをつかんでいないと思います... 誰かがなぜ知っていますか?
これは、(お互いに接触しているものを2台の携帯電話)の電話の1からlogcatです:
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte d0
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte a6
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte 42
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte 1
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte fc
03-03 15:37:47.842: W/NFC-LLC(446): bad LLC length byte c1
03-03 15:37:48.264: D/NFC JNI(446): Discovered P2P Target
03-03 15:37:48.264: D/NfcService(446): LLCP Activation message
03-03 15:37:48.264: D/NfcService(446): NativeP2pDevice.MODE_P2P_TARGET
03-03 15:37:48.296: I/NFC JNI(446): LLCP Link activated (LTO=150, MIU=128, OPTION=0x00, WKS=0x01)
03-03 15:37:48.296: D/NfcService(446): Initiator Activate LLCP OK
03-03 15:37:48.296: I/NfcP2pLinkManager(446): LLCP activated
03-03 15:37:48.296: D/NfcP2pLinkManager(446): onP2pInRange()
03-03 15:37:48.467: D/dalvikvm(446): GC_FOR_ALLOC freed 3192K, 18% free 17750K/21575K, paused 19ms
03-03 15:37:48.467: I/dalvikvm-heap(446): Grow heap (frag case) to 20.515MB for 3265936-byte allocation
03-03 15:37:48.514: D/dalvikvm(446): GC_CONCURRENT freed <1K, 3% free 20939K/21575K, paused 4ms+3ms
03-03 15:37:51.264: I/NFC JNI(446): LLCP Link deactivated
03-03 15:37:51.264: D/NfcService(446): LLCP Link Deactivated message. Restart polling loop.
03-03 15:37:51.264: D/NfcService(446): disconnecting from target
03-03 15:37:51.264: I/NfcP2pLinkManager(446): LLCP deactivated.
03-03 15:37:52.022: D/NfcP2pLinkManager(446): Debounce timeout
03-03 15:37:52.022: D/NfcP2pLinkManager(446): onP2pOutOfRange()
UPDATE
私は付箋コードをデフォルトにいくつかの変更を加えましたICS NFC APIをサポートするようにアップグレードする必要があります。 Infactドキュメントに行くと、次のようになります。http://developer.android.com/reference/android/nfc/NfcAdapter.html#enableForegroundNdefPush%28android.app.Activity,%20android.nfc.NdefMessage%29
このメソッドは非推奨です。 使用setNdefPushMessage(NdefMessage、活動、活動...)の代わりに
はまた、私はこの読み:NDEFが正しく機能するためにプッシュするために、他のNFCデバイス は(いずれかのNFC Forumの SNEP(簡易NDEF交換プロトコル)、またはAndroidの " com.android.npp" サポートしている必要がありますNdefプッシュプロトコル)。これはGingerbreadレベルのAndroid NFCデバイスではオプションでしたが、 SNEPはIce-Cream-Sandwich以降では以降で必須です。は強くなく、新しいsetNdefPushMessage(NdefMessage、 活動、活動を...)を使用することをお勧めします:それは自動的にあなたの 活動のライフサイクルにフック、あなたは onResume/onPauseで有効/無効を呼び出す必要はありません。
setNdefPushMessageを使用すると、他の変更を行う必要がある場合、自動的にSNEPプロトコルをサポートするかどうかわかりません。 現時点では、Galaxy Nexus(4.0.2)とNexus S(4.0.3)を使用していますが、テストを行うためのデバイスは他にありません。
また、メッセージを送信しているアダプタのためにonNdefPushCompleteを実装しました。これは決して呼び出されません。これはAPIS、デバイス、または私のコードに関する問題であるかどうかわかりません。 私が理解できないことは、すべてがうまくいけば、Sticky Note編集テキストのテキストを変更し、2つのデバイスをNFCとリンクすると、テキストが他のデバイスに送信されるということですか?これは例ですか?
本当に奇妙なことは、私はICSとNFCを行う方法について例や公式ドキュメントを見つけることができないということです
誰かが解決する方法を知っている...ので、それをうまく説明していませんか?
私は大きな間違いをしていました。私はNFCを有効にして、Beam機能を無効にすることでNFCの作業が可能になると思います。私は、NFCを有効にすると、タグの読み取り部分を有効にし、ICSのBeamを有効にすると書き込み部分が有効になることを知りました。結論として、私のデバイスは読み込めましたが書き込みはできませんでした:)今はすべてうまくいきます:) – StErMi