2016-05-23 5 views
1

NFCタグを読み取り、後でAndroidの別のデバイスに送信するためのミニアプリを作成したいと考えています。その部分はすでに終わっており、タグを読むことができ、その文字列をEditTextに印刷することができます。しかし、私はそのタグから読み込んだテキストをNFCのある別のデバイスに送信したいと思っています。どうやってやるの?NFC経由で別のデバイスにテキスト文字列を送信するにはどうすればよいですか?

//I have this code here when a tag is discovered... 
@Override 
protected void onNewIntent(Intent intent) { 
    if (intent.getAction().equals(NfcAdapter.ACTION_TAG_DISCOVERED)) { 
     String result = ""; 
     result = ByteArrayToHexString(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID)); 
     myTag = result; 
     txtTag.setText(myTag); 

    } 
} 

テキスト文字列をNFC経由で別のデバイスに送信するにはどうすればよいですか?

答えて

0

あなたがしたいことは、Androidの正しいいいえでは簡単にはできません(将来はおそらくないでしょう)。

あなたは現在、衝突防止識別子(UID、PUPI、または何でもそれはあなたが読んでいる特定のタグのプラットフォーム用と呼ばれる)を読み取る:

result = ByteArrayToHexString(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID)); 

衝突防止識別子が非常に低いの一部であり、プロトコル層。 Androidはホストベースのカードエミュレーション(Android HCEを参照)をサポートしていますが、Android APIはUIDなどの低レベルのパラメータを制御する手段がありません。通常、NFCタグでその情報を変更することもできません。

Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 
NdefMessage msg = null; 
if ((rawMsgs != null) && (rawMsgs.length > 0)) { 
    msg = (NdefMessage)rawMsgs[0]; 
} 
if (msg != null) { 
    // do something with the received message 
} 

をAndroidがサポート(書き込み可能)NFCタグにこれらのNDEFメッセージを格納ん、それはまた、送信をサポート:あなたのタグはまた、NDEFフォーマットのいくつかの高レベルのデータが含まれている場合は、使用していることを得ることができたことを

注意NDEFメッセージを他のNFCデバイスに送信します(Beaming NDEF Messages to Other Devicesを参照)。

  • など。あなたが使用できるNFCタグにNDEFメッセージを保存します

    Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
    Ndef ndef = Ndef.get(tag); 
    if (ndef != null) { 
        try { 
         ndef.connect(); 
         ndef.writeNdefMessage(msg); 
        } finally { 
         ndef.close(); 
        } 
    } else { 
        NdefFormatable ndefFormatable = NdefFormatable.get(tag); 
        if (ndefFormatable != null) { 
         try { 
          ndefFormatable.connect(); 
          ndefFormatable.format(message); 
         } finally { 
          ndefFormatable.close(); 
         } 
        } 
    } 
    
  • それとも、あなたが使用できるピア・ツー・ピア・モード(アンドロイドビーム)を介して他のNFCデバイスにメッセージを送信するために:

    NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); 
    nfcAdapter.setNdefPushMessage(msg, this); 
    
+0

私は質問がありますので、私は質問をしています...私はデバイスにこのアプリケーションをインストールする必要がありますどこに文字列を送信するつもりですか? –

+1

はい、受信者としてもアプリが必要です。 Androidは、特定のアプリなしでデータの処理方法を知らないだろう。 –

関連する問題