
Googlening kengaytirilgan haqiqatga kirishga urinishi, aqlli ko'zoynaklar texnologiyasining boshqa provayderlari bilan solishtirganda, eng muvaffaqiyatli bo'ldi. Google Glass ommaviy bozorga hali tayyor bo'lmagan bo'lsa-da, uning beta versiyasi allaqachon innovatsion qarashlarga ega bo'lgan juda ko'p odamlarni, shu jumladan ba'zi mijozlarimizni o'ziga jalb qildi. Geolocation - bu Google Glass yordamida amalga oshirishingiz mumkin bo'lgan eng foydali xususiyatlardan biridir.
Geolokatsiyani amalga oshirishning ikkita usuli
Agar qurilma iPhone yoki Android smartfoniga ulanmagan bo'lsa, foydalanuvchi Google Glass'da geolokatsiyaga kira olmaydi, chunki Google Glass ichida GPS yo'q. Agar sizda geolokatsiya texnologiyasi qanday ishlashi va joylashuvni aniqlovchi ilovani qanday yaratish haqida savollaringiz bo'lsa, avval ushbu postni o'qing: https://yalantis.com/blog/location-aware-app.
Shuning uchun biz smartfon va Google qurilmasi yordamida geolokatsiyani qanday amalga oshirishni o'rganishga qaror qildik. Biz buni amalga oshirishning ikkita usulini ko'rib chiqamiz. Ular:
- GDK (Shisha ishlab chiqish to'plami, mahalliy)
- Mirror API (Bulutli xizmat)
GDK yordamida Glass’da geolokatsiyani amalga oshirish oddiy Android qurilmalaridagiga oʻxshaydi. Bu mavjud joylashuv provayderlaridan joylashuv maʼlumotlarini olish uchun Android platformasi uchun standart API’lardan foydalanishni anglatadi. GDK yordamida siz istalgan vaqtda va kerakli vaqt oraligʻida joylashuv maʼlumotlariga kirishingiz mumkin.
Boshqa tomondan, siz Mirror API yordamida shisha buyumlar ishlab chiqayotganingizda , bulutga asoslangan ilovangiz joylashuv ma'lumotlariga juda cheklangan kirish huquqiga ega. Glass joylashuv ma'lumotlarini MirrorAPI ga har 10 daqiqada bir marta yuboradi. Keyin, agar ilovangiz foydalanuvchining joylashuv yangilanishlariga obuna bo'lgan bo'lsa, u MirrorAPI dan joylashuv ma'lumotlari bilan qayta qo'ng'iroqni qabul qiladi. Shuningdek, siz oxirgi ma'lum bo'lgan foydalanuvchi joylashuvi ma'lumotlarini xuddi shu tarzda so'rashingiz mumkin. Endi har bir usulni batafsil ko'rib chiqaylik.
GDK
Glass Development Kit ( GDK ) - bu Android SDK-ga qo'shimcha bo'lib, u sizga to'g'ridan-to'g'ri Glassda ishlaydigan Glassware-ni yaratish imkonini beradi. Joylashuv ma'lumotlarini olish uchun quyidagi Android SDK sinflaridan foydalanishingiz kerak:
- Joylashuv menejeri – Muloqotni boshqaradigan Android joylashuv xizmatiga kirish imkonini beradi LocationProvider.
- LocationProvider – Glass maxsus “masofadagi” joylashuv ma’lumotlari manbalarini taqdim etadi. Ular sizga MyGlass hamroh ilovasi oʻrnatilgan ulangan qurilmadan maʼlumotlarga kirish imkonini beradi.
- Mezonlar – Bu joylashuv maʼlumotlarini toʻgʻri deb hisoblash mumkin boʻlgan shart. Ma'lumotlar manbasidan eng mos joylashuv ma'lumotlarini tanlash imkoniyatiga ega bo'lish uchun bir qator mezonlar yaratishingiz kerak.
Bir yoki bir nechta joylashuv provayderlaridan ma'lumotlarni olish uchun siz LocationManager sinfidan foydalanishingiz kerak bo'ladi .
Android ilovalari joylashuv ma'lumotlarini mahalliy GPS va mobil tarmoqlardan oladi. Biroq, Glassda mavjud joylashuv provayderlari to'plami dinamik bo'lib, masofaviy provayderlarni o'z ichiga olishi mumkin. Ular MyGlass hamroh ilovasi bilan bogʻlangan Bluetooth qurilmalari kabi boshqa manbadan joylashuv maʼlumotlarini taʼminlaydi. Ushbu qo'shimcha provayderlarni boshqarish uchun bitta emas, balki bir nechta provayderlarning joylashuv yangilanishlariga obuna bo'ling.
Eslatma: Joylashuv yangilanishlariga obuna bo‘lish LocationManager.getBestProvider() usuli yoki GPS_PROVIDER yoki NETWORK_PROVIDER konstantalaridan foydalanishni anglatmaydi. Glass provayderlarning dinamik to'plamidan foydalanadi. Shunday qilib, agar siz faqat bitta provayderga obuna bo'lsangiz, ilovangiz joylashuv yangilanishlarini o'tkazib yuborishi mumkin.
Barcha mavjud joylashuv provayderlaridan maʼlumotlarni soʻrash uchun:
- Yarating Mezonlar joylashuv talablari bilan ob'ekt.
- chaqirish getProviders() mezoningizga javob beradigan provayderlar ro'yxatini olish uchun.
- Provayderlar ro'yxatini takrorlang va ularning barchasidan yangilanishlarni so'rang. Bu nafaqat mavjud masofaviy provayderlardan, balki Glass bilan aloqa qiladigan mahalliy provayderlardan ham yangilanishlarni olish imkonini beradi (masalan, simsiz tarmoq provayderi orqali).
- Joriy yangilanish to'g'ri yoki boshqasini kutish kerakligini aniqlash uchun har bir yangilanish bilan taqdim etilgan vaqt ma'lumotlarining to'g'riligiga e'tibor bering.
Bu yerda joylashuv maʼlumotlari manbasini tanlash va yangilanishlarni soʻrash misoli keltirilgan:
LocationManager LocationManager; // boshqa joyda ishga tushirilgan
// Bu misol nozik aniqlikni talab qiladi va balandlikni talab qiladi, lekin
// bu mezonlar siz xohlagan narsa bo'lishi mumkin.
Mezonlar mezonlari = yangi mezonlar();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
mezonlar.setAltitudeRequired( true );
Roʻyxat provayderlar = locationManager.getProviders(
mezonlar, rost /* enabledOnly */);
uchun (String provayderi: provayderlar) {
locationManager.requestLocationUpdates(provayder, minTime,
minDistance, tinglovchi);
}
Glass’da geolokatsiyani qanday amalga oshirishning toʻliq namunasi .

Glass-da yo'nalishlar ilovasidan foydalanish
Glassda marshrutlarni yaratish va navigatsiyadan foydalanish imkonini beruvchi oldindan oʻrnatilgan ilova mavjud. Uni ishga tushirish uchun tizimga niyat yuborishingiz kerak: Harakat: ACTION_VIEW
Ma'lumotlar URI sxemasi:
google.navigation:ll= , &sarlavha= &q=<query>&mode=<mode>
1. ll - Joylashuv koordinatalari. Agar siz koordinatalarni ko'rsatgan bo'lsangiz, so'rovni ko'rsatishga hojat yo'q.
2. sarlavha - ko'rsatilgan joyning nomi. U sizga sukut bo'yicha joylashuvning kenglik va uzunligini ko'rsatadi (agar siz ushbu xususiyatlarni belgilagan bo'lsangiz). Aks holda, u joy nomini ko'rsatadi (agar siz so'rovni ko'rsatsangiz).
3. so'rov - marshrut qurishingiz kerak bo'lgan joylarni so'rash uchun satr. Agar buni belgilasangiz, ll ni belgilamang.
4. rejim - Agar ko'rsatilmagan bo'lsa, MRU (eng so'nggi foydalanilgan) standarti yoki MRU mavjud bo'lmasa, "d". Mumkin qiymatlar:
d - Haydash
w - yurish
b - velosiped
r - tranzit
MRU - Eng so'nggi foydalanilgan.
misol:
Niyat navIntent = yangi Niyat(Niyat.ACTION_VIEW, Uri.parse(“google.navigation:ll=37.4219795, -122.0836669&title=Belvedere Ln”));

Ko'rib turganingizdek, GDK dan foydalanish juda oddiy. Mana men GDK yordamida yozgan geolokatsiyaga asoslangan shisha idishlarga misol. Keling, Mirror API imkoniyatlarini ko'rib chiqaylik.
Mirror API
Google Mirror API sizga Google Glass bilan o'zaro aloqada bo'lgan veb-asosidagi xizmatlarni yaratish imkonini beradi. U bu funksiyani bulutga asoslangan API orqali taqdim etadi va Glassda kodni ishga tushirishni talab qilmaydi. Agar MirrorAPI-da joylashuv bilan ishlasangiz, sizda quyidagi imkoniyatlar mavjud:
- Siz foydalanuvchining oxirgi maʼlum joylashuvini soʻrashingiz mumkin
- Siz vaqti-vaqti bilan joylashuv yangilanishlariga obuna bo'lishingiz mumkin
- Xronologiya kartalarida xaritani ko'rsatishingiz mumkin
Eslatma: Shisha qurilma joylashuv maʼlumotlarini bulutga har 10 daqiqada yuboradi. Barcha joylashuv yangilanishlari serveringiz tomonidan qabul qilinadi. Birinchidan, OAuth 2.0 autentifikatsiya jarayonida foydalanuvchi manzilini olish uchun qo'shimcha ruxsat doirasini so'rashingiz kerak:
https://www.googleapis.com/auth/glass.location scope
Keyin Google Mirror API-dan "obuna bo'lish" usuliga qo'ng'iroq qilishingiz va joylashuv yangilanishlarini oladigan URL manzilini taqdim etishingiz kerak.
Oxirgi foydalanuvchining manzilini olish uchun:
REST so'nggi nuqtasiga GET so'rovini yuboring:
GET /mirror/v1/locations/ HTTP/1.1
Avtorizatsiya: Tashuvchi {auth token}
Siz quyidagi JSON javobini olasiz.
{
"turli": "oyna #joylashuv",
"id": satr,
"vaqt tamg'asi": sana vaqti,
“kenglik”: ikki baravar ,
“uzunlik”: ikki barobar ,
"aniqlik": ikki baravar ,
"displayName": string,
"manzil": string
}

Ushbu so'rov yordamida siz oxirgi ma'lum bo'lgan foydalanuvchi manzilini va uning vaqt tamg'asini olasiz. Foydalanuvchi voqealariga obuna bo'lish uchun: REST so'nggi nuqtasiga POST so'rovini yuboring:
POST /oyna/v1/obunalar HTTP/1.1
Avtorizatsiya: Tashuvchi {auth token}
Tarkib turi: application / json
Kontent uzunligi: {length}
{“toʻplam”: “joylashuvlar”, “userToken”: “harold_penguin”, “verifyToken”: “random_hash_to_verify_referer”, “callbackUrl”: “https://yalantis.com/notify/callback”}
Javob oxirgi ma'lum joylashuvni so'raganingizdek bo'ladi.
Eslatma: callbackUrl har doim https bo'lishi kerak
Serverdan yuborilgan vaqt jadvali kartasida xaritani ko'rsatish uchun:
Google Mirror API siz uchun xaritalarni ko'rsatishi va muhim joylar va yo'llarni aniqlash uchun markerlar va chiziqlarni joylashtirishi mumkin. Xarita soʻrash uchun glass://map URI dan foydalaning. Mana bir misol:
kenglik = "kenglik"
balandlik = "balandlik"/>
Bu yerda kerakli parametrlarning tavsifi: w – Qaytgan xarita tasvirining piksellardagi kengligi h – Qaytarilgan xarita tasvirining piksellardagi balandligi.

Ko'rib turganingizdek, MirrorAPI ma'lumotlarni darhol olishingiz kerak bo'lgan ilovalar uchun mukammal emas, chunki joylashuv ma'lumotlari har 10 daqiqada yangilanadi. Biroq, siz ushbu usulni boshqa maqsadlarda qo'llashingiz mumkin, masalan, maqsadli kontent (joyga mahkamlangan). Masalan, siz kinoteatr yaqinida yurgan foydalanuvchining xronologiyasiga joriy filmlar bilan kartani yuborishingiz mumkin.
Xulosa qilib aytganda, MirrorAPI va GDK bilan ishlash hech qanday qiyinchilik tug'dirmaydi. Agar siz Google Glass-da geolokatsiyani amalga oshirishning texnik xususiyatlari haqida ko'proq bilishni istasangiz, shuningdek, ilovangiz uchun qaysi usul to'g'ri kelishi haqida ba'zi maslahatlarni bilmoqchi bo'lsangiz, bizga eslatma yuborishingiz mumkin!








