Yakındaki Bağlantılar, uygulamaların ağ bağlantısından bağımsız olarak yakındaki cihazları kolayca keşfetmesine, bunlara bağlanmasına ve gerçek zamanlı olarak veri alışverişinde bulunmasına olanak tanıyan eşler arası bir ağ API'sidir.
Bazı örnek kullanım alanları:
- Ortak çalışma beyaz tahtası: Yakındaki katılımcılarla birlikte paylaşılan sanal beyaz tahtaya fikirlerinizi yazın.
- Yerel çok oyunculu oyunlar: Çok oyunculu bir oyun oluşturup yakındaki diğer kullanıcıları katılmaya davet edin.
- Çok ekranlı oyun: Android TV gibi yakındaki büyük ekranlı bir Android cihazda görüntülenen oyunları oynamak için telefon veya tableti oyun kumandası olarak kullanın.
- Çevrimdışı dosya aktarımları: Fotoğraf, video veya diğer veri türlerini ağ bağlantısı gerekmeden hızlıca paylaşın.
Giriş
Yakındaki Bağlantılar, yakındaki cihazlar arasında tamamen çevrimdışı bir şekilde eşler arası reklam, keşif ve bağlantı sağlar. Cihazlar arasındaki bağlantılar yüksek bant genişliğine, düşük gecikme süresine sahiptir ve hızlı, güvenli veri aktarımı sağlamak için tamamen şifrelenir.
Bu API'nin temel amacı basit, güvenilir ve yüksek performanslı bir platform sunmaktır. API, Bluetooth, BLE ve kablosuz teknolojilerinin bir kombinasyonunu kullanır. Her birinin güçlü yönlerinden yararlanırken zayıf yönlerini de ortadan kaldırır. Bu sayede, Bluetooth ve kablosuz bağlantının çeşitli platformlar ve OS sürümlerindeki değişkenlikleri etkili bir şekilde soyutlanır. Böylece geliştiriciler, kullanıcıları için önemli olan özelliklere odaklanabilir.
API'ye genel bakış
API'nin kullanımı iki aşamaya ayrılır: bağlantı öncesi ve bağlantı sonrası.
Bağlantı öncesi aşamada, Reklamverenler kendilerini tanıtırken Keşfedenler yakındaki Reklamverenleri keşfeder ve bağlantı istekleri gönderir. Keşfeden'den Reklamveren'e gönderilen bir bağlantı isteği, her iki tarafın da bağlantı isteğini bağımsız olarak kabul etmesiyle (veya reddetmesiyle) sonuçlanan simetrik bir kimlik doğrulama akışı başlatır.
Bağlantı isteği her iki tarafça kabul edildikten sonra bağlantı kurulmuş sayılır ve cihazlar, her iki tarafın da veri alışverişinde bulunabileceği bağlantı sonrası aşamaya geçer.
Reklamcılık ve keşif
Reklamverenler diğer keşifçiler tarafından görülebilir ve yeni bir reklamveren bulunduğunda veya kaybedildiğinde keşifçiler bilgilendirilir.
Bağlantı kurma
Keşfeden, yakındaki bir reklamverene bağlanmak istediğinde bağlantı isteğinde bulunabilir.
Her iki taraf da bağlantı başlatma süreci hakkında bilgilendirilir ve bağlantıyı kabul etme veya reddetme fırsatına sahip olur.
Her iki taraf da yanıt verdikten sonra sonuç her iki tarafa da bildirilir. Her iki taraf da bağlantıyı kabul ederse bağlantı kurulmuş sayılır ve veri aktarımı başlayabilir.
Veri alışverişi
Bağlantı kurulduktan sonra API kullanımı simetrik hale gelir. Bu nedenle, artık Reklamveren ve Keşfeden arasında bir ayrım yoktur.
Artık her iki taraf da veri alışverişinde bulunabilir. Desteklenen 3 tür yük vardır:
- Bayt: 32 bin ile sınırlı bayt dizileri. Bunlar, meta veri veya kontrol mesajları gibi öğeleri göndermek için idealdir.
- Dosya: Her boyuttaki dosyalar. Bunlar, işlem sınırları arasında minimum kopyalama ile uygulamadan ağ arayüzüne aktarılır.
- Akış: Kaydedilen ses/video gibi anında oluşturulan ve nihai boyutu önceden bilinmeyen bir veri akışı.
Alıcılar, yeni gelen veriler ve ilerleme güncellemeleri, iptaller veya hatalar hakkında bilgilendirilir.
Kurulan bağlantılar tam çift yönlüdür. Yani reklamverenler ve keşfedenler aynı anda veri gönderip alabilir.
Veri Toplama
Google Play Hizmetleri Yakındakiler SDK'sı kullanılırken deneyimi iyileştirmek için kullanım analizleri toplanır.
- Performans metrikleri: Nearby SDK'sı kullanılarak cihazlar taranırken ve cihazlara bağlanılırken keşif ve bağlantı gecikmesi, güvenilirlik ve işleme hızı toplanır.
- Cihaz bilgileri: Bölgesel ve cihaza özgü dilimleri belirlemek için cihaz modeli, ülke, derleme sürümü ve uygulama paketi adı toplanır ve performans metrikleriyle ilişkilendirilir.
Son kullanıcılar Ayarlar > Google > Kullanım ve teşhis bölümüne giderek bu verilerin toplanmasına izin verebilir veya vermeyebilir.