Android Beam
Android işlem, Android 4,0 ' de sunulan yakın alan Iletişimi (NFC) teknolojisidir.
Android Kirme, iki cihaz Aralık içinde olduğunda NFC üzerinden iletiler göndererek işe yarar. Her birinden 4cm ile ilgili aygıtlar, Android ışını kullanarak veri paylaşabilir. Bir cihazdaki etkinlik bir ileti oluşturur ve bunu göndermeyi işleyebilen bir etkinlik (veya etkinlikler) belirtir. Belirtilen etkinlik ön planda olduğunda ve cihazlar aralıkta olduğunda, Android kirmesi iletiyi ikinci cihaza gönderir. Alıcı cihazda, ileti verilerinin bulunduğu bir amaç çağrılır.
Android, Android kirile ileti ayarlamanın iki yolunu destekler:
SetNdefPushMessage-Android Kiryana başlamadan önce bir uygulama, NFC üzerinden gönderim yapılacak bir NdefMessage belirtmek için SetNdefPushMessage ' ı çağırabilir ve bunu gönderen etkinlik. Bu mekanizma, bir uygulama kullanımda iken bir ileti değişmezse en iyi şekilde kullanılır.SetNdefPushMessageCallback-Android Kirme başlatıldığında bir uygulama, NdefMessage oluşturmak için bir geri çağırma işlemini işleyebilir. Bu mekanizma, cihazlar aralığa gelinceye kadar ileti oluşturma 'nın gecikilmesi için izin verir. İletinin uygulamada neler olduğunu temel alarak değişebileceği senaryoları destekler.
Her iki durumda da, Android ile veri göndermek için bir uygulama NdefMessage , verileri birkaç halinde paketleyerek bir paket gönderir NdefRecords . Android ışını tetikleyebilmemiz için öncelikle değinilmesi gereken anahtar noktalarına göz atalım. İlk olarak, oluşturmak için geri çağırma stiliyle çalışacağız NdefMessage .
Ileti oluşturma
Geri çağırmaları etkinliğin yönteminde bir ile kaydedebiliriz NfcAdapterOnCreate . Örneğin, bir adlandırılmış öğenin NfcAdaptermNfcAdapter etkinlikte bir sınıf değişkeni olarak bildirildiği varsayıldığında, iletiyi oluşturacak geri çağırma işlemini oluşturmak için aşağıdaki kodu yazabilirsiniz:
mNfcAdapter = NfcAdapter.GetDefaultAdapter (this);
mNfcAdapter.SetNdefPushMessageCallback (this, this);
Uygulayan etkinlik, NfcAdapter.ICreateNdefMessageCallbackSetNdefPushMessageCallback Yukarıdaki yöntemine geçirilir. Android Kiru başlatıldığında, sistem, CreateNdefMessage etkinliğin aşağıda gösterildiği gibi oluşturabileceğinize göre çağırır NdefMessage :
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;
}
Ileti alma
Alma tarafında, sistem eylemi ile bir amaç çağırır ActionNdefDiscovered ve bu, NdefMessage ' ı aşağıdaki gibi ayıklayabiliriz:
IParcelable [] rawMsgs = intent.GetParcelableArrayExtra (NfcAdapter.ExtraNdefMessages);
NdefMessage msg = (NdefMessage) rawMsgs [0];
Aşağıdaki ekran görüntüsünde çalışan Android kiranın kullanıldığı tüm kod örnekleri için örnek galerisinde Android kiranın tanıtımı bölümüne bakın.

