Android Beam

Android Je technologie NFC (Near Field Communication) představená v Androidu 4.0, která umožňuje aplikacím sdílet informace přes NFC v těsné blízkosti.

Diagram znázorňující dvě zařízení v blízkosti informací o sdílení

Android Už funguje tak, že se zprávy budou odesílat přes NFC, když jsou dvě zařízení v dosahu. Zařízení přibližně 4cm od sebe mohou sdílet data pomocí Androidu Užee. Aktivita na jednom zařízení vytvoří zprávu a určuje aktivitu (nebo aktivity), která může zpracovat jejich nasazování. Když se zadaná aktivita nachází v popředí a zařízení jsou v dosahu, Android Užívací zařízení zprávu nas nabízené zprávy do druhého zařízení. Na přijímajícím zařízení se vyvolá záměr obsahující data zprávy.

Android podporuje dva způsoby nastavení zpráv pomocí Androidu AndroidU:

  • SetNdefPushMessage – Před zahájením androidu Je možné volat aplikaci SetNdefPushMessage a zadat zprávu NdefMessage, která se má nasazuje přes NFC, a aktivitu, která ji nasazuje. Tento mechanismus je nejlepší použít, když se zpráva nezmění, když se aplikace používá.

  • SetNdefPushMessageCallback – Když se iniciuje AndroidÁtor, může aplikace zpracovat zpětné volání a vytvořit zprávu NdefMessage. Tento mechanismus umožňuje zpožďovat vytváření zpráv, dokud nebudou zařízení v dosahu. Podporuje scénáře, ve kterých se zpráva může lišit v závislosti na tom, co se děje v aplikaci.

V obou případech odešle aplikace k odesílání dat pomocí Androidu Android Androidu soubor , který NdefMessage data zabalí do několika NdefRecords . Pojďme se podívat na klíčové body, které je třeba vyřešit, než budeme moci aktivovat Android Krátka. Nejprve budeme pracovat se stylem zpětného volání vytvoření NdefMessage .

Vytvoření zprávy

Zpětná volání můžeme registrovat pomocí NfcAdapter v metodě OnCreate aktivity . Například za předpokladu, že je pojmenovaný deklarován jako proměnná třídy v aktivitě, můžeme napsat následující kód pro vytvoření zpětného volání, které NfcAdaptermNfcAdapter vytvoří zprávu:

mNfcAdapter = NfcAdapter.GetDefaultAdapter (this);
mNfcAdapter.SetNdefPushMessageCallback (this, this);

Aktivita , která implementuje NfcAdapter.ICreateNdefMessageCallback , se předá výše SetNdefPushMessageCallback uvedené metodě. Když se iniciuje AndroidÁtor, systém zavolá , ze kterého může aktivita vytvořit , CreateNdefMessageNdefMessage jak je znázorněno níže:

public NdefMessage CreateNdefMessage (NfcEvent evt)
{
    DateTime time = DateTime.Now;
    var text = ("Beam me up!\n\n" + "Beam Time: " +
        time.ToString ("HH:mm:ss"));
    NdefMessage msg = new NdefMessage (
        new NdefRecord[]{ CreateMimeRecord (
            "application/com.example.android.beam",
            Encoding.UTF8.GetBytes (text)) });
        } };
    return msg;
}

public NdefRecord CreateMimeRecord (String mimeType, byte [] payload)
{
    byte [] mimeBytes = Encoding.UTF8.GetBytes (mimeType);
    NdefRecord mimeRecord = new NdefRecord (
        NdefRecord.TnfMimeMedia, mimeBytes, new byte [0], payload);
    return mimeRecord;
}

Příjem zprávy

Na přijímající straně systém vyvolá záměr s akcí, ze které můžeme extrahovat ActionNdefDiscovered zprávu NdefMessage následujícím způsobem:

IParcelable [] rawMsgs = intent.GetParcelableArrayExtra (NfcAdapter.ExtraNdefMessages);
NdefMessage msg = (NdefMessage) rawMsgs [0];

Kompletní příklad kódu, který používá Android Krátka, zobrazený na snímku obrazovky níže, najdete v ukázce Androidu v Galerii ukázek.

Ukázkové snímky obrazovky z ukázky Androidu v Androidu