Отправьте URL между двумя устройствами NFC - PullRequest
2 голосов
/ 20 марта 2012

У меня есть приложение для Android с веб-просмотром.Когда веб-просмотр получает URL с определенным текстом, например билетом, я хотел бы отправить URL-адрес на другое устройство NFC через NFC.Мне удалось отправить URL-адрес в тег NFC типа 4, но я не смог выяснить, как отправить его на другое устройство NFC, чтобы он запускал браузер с URL-адресом.Я просто использовал следующее, чтобы создать NDEF

NdefRecord uriRecord = NdefRecord.createUri(url);
NdefMessage message = new NdefMessage(new NdefRecord[] {
            uriRecord            
});

и затем используйте это, чтобы написать

ndef.writeNdefMessage(message);

Я пишу приложение в ICS (на galaxy nexus) и пытаюсь отправить в galaxy s2 с 2.3.6.

Любая помощь и указатель будут оценены.

1 Ответ

2 голосов
/ 21 марта 2012

При отправке сообщения NDEF на другой телефон вы не используете API для чтения / записи тегов, например Ndef.Вместо этого ваше сообщение NDEF доставляется через одноранговый NFC.Один из способов сделать это - использовать setNdefPushMessageCallback в ваших Activity onCreate():

    NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
    nfc.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback()
    {
        /*
         * (non-Javadoc)
         * @see android.nfc.NfcAdapter.CreateNdefMessageCallback#createNdefMessage(android.nfc.NfcEvent)
         */
        @Override
        public NdefMessage createNdefMessage(NfcEvent event) 
        {
            NdefRecord uriRecord = NdefRecord.createUri(Uri.encode("http://www.google.com/"));
            return new NdefMessage(new NdefRecord[] { uriRecord });
        }

    }, this, this);  

. Обратный вызов будет вызван, когда другое устройство NFC приблизится иодноранговое соединение установлено.Затем обратный вызов создает сообщение NDEF для отправки (в вашем случае: URL, отображаемый в веб-просмотре).

...