Wearable Data Layer API, Google Play পরিষেবার অংশ, পরে থাকা যায় এমন ডিভাইস (যেমন স্মার্ট ওয়াচ) এবং কানেক্ট করা হ্যান্ডহেল্ড ডিভাইসের (সাধারণত স্মার্টফোন) মধ্যে কমিউনিকেশন চ্যানেল প্রদান করে। এটি ডিভাইসগুলির মধ্যে ডেটা সিঙ্ক্রোনাইজ এবং ট্রান্সফার করার একটি উপায়।
মনে রাখবেন: এই API শুধুমাত্র Wear OS স্মার্টওয়াচ এবং পেয়ার করা Android ডিভাইসে উপলভ্য। iOS ফোনের সাথে পেয়ার করা Wear OS স্মার্টওয়াচের ক্ষেত্রে, ইন্টারনেট কানেক্টিভিটি উপলভ্য থাকলে, অ্যাপ অন্যান্য ক্লাউড-ভিত্তিক API কোয়েরি করতে পারে। এইসব অন্যান্য API সম্পর্কে আরও তথ্যের জন্য, Wear OS-এ নেটওয়ার্ক অ্যাক্সেস ও সিঙ্ক দেখুন।
সতর্কতা: যেহেতু ডেটা লেয়ার API-কে হ্যান্ডহেল্ড ও হালকা ও ছোট ডিভাইসের মধ্যে যোগাযোগের জন্য ডিজাইন করা হয়েছে, তাই এইসব ডিভাইসের মধ্যে যোগাযোগ সেট-আপ করার জন্য আপনি শুধুমাত্র এই API ব্যবহার করতে পারবেন। যেমন, কমিউনিকেশন চ্যানেল তৈরি করার জন্য লো-লেভেল সকেট খোলার চেষ্টা করবেন না।
সাধারণ ব্যবহারিক প্রয়োগ
ইন্টার্যাকশন শুধুমাত্র স্মার্টওয়াচ ও ফোনের মধ্যে হলে, Data Layer API ব্যবহার করুন। যেমন:
- রিমোট কন্ট্রোল: স্মার্টওয়াচ ফোনের রিমোট হিসেবে কাজ করে (যেমন, ফোনে চলা মিউজিক প্লেয়ার কন্ট্রোল করা, প্রেজেন্টেশন স্লাইড করা, ক্যামেরা শাটার হিসেবে কাজ করা)।
- হ্যান্ডহেল্ড অ্যাপ লঞ্চ করা: "ফোনে খুলুন" বোতাম ফিচার।
- যাচাইকরণ ব্রিজিং: প্রাথমিক সেট-আপের সময় ফোন থেকে স্মার্টওয়াচে সেশন টোকেন পাঠানো।
অনেক সাধারণ পরিস্থিতিতে আপনার আগে থেকে থাকা ক্লাউড ইনফ্রাস্ট্রাকচার ব্যবহার করা উচিত, যেমন:
- ডেটা সেভ করা: ওয়ার্কআউট, নোট।
- কন্টেন্ট ফেচ করা: আগে করা ওয়ার্কআউটের তালিকা লোড করা, মিউজিক ডাউনলোড করা, আবহাওয়া ফেচ করা।
- সিঙ্ক করার স্ট্যাটাস: ব্যবহারকারী ওয়েব থেকে তার প্রোফাইল ফটো পরিবর্তন করলে, স্মার্টওয়াচ ফোনে কোয়েরি না করে ক্লাউড ব্যবহার করে আপডেট করে।
এইসব ক্ষেত্রে, ডেটা লেয়ার API-এর পরিবর্তে আপনার নিজস্ব আগে থেকে থাকা এন্ডপয়েন্ট ও ইনফ্রাস্ট্রাকচার ব্যবহার করুন।
যোগাযোগের জন্য বিকল্প
নিম্নলিখিত যেকোনও একটি উপায়ে ডেটা ট্রান্সফার করা হয়:
- Wear OS ডিভাইস ও অন্য ডিভাইসের মধ্যে ব্লুটুথ কানেকশন থাকলে, সরাসরি।
- উপলভ্য নেটওয়ার্কের মাধ্যমে, যেমন LTE বা ওয়াই-ফাই, Google-এর সার্ভারে নেটওয়ার্ক নোডকে মধ্যস্থতাকারী হিসেবে ব্যবহার করে।
ডিভাইসে উপলভ্য কানেকশনের উপর নির্ভর করে, সব ডেটা লেয়ার ক্লায়েন্ট ব্লুটুথ বা ক্লাউড ব্যবহার করে ডেটা আদান-প্রদান করতে পারে। ধরে নিন যে ডেটা লেয়ার ব্যবহার করে ট্রান্সমিট করা ডেটা কোনও এক সময় Google-এর মালিকানাধীন সার্ভার ব্যবহার করতে পারে।
ব্লুটুথ
ব্লুটুথ ব্যবহার করে ডিভাইস কানেক্ট করা হলে, ডেটা লেয়ার এই কানেকশন ব্যবহার করে। Google Play পরিষেবার মাধ্যমে ম্যানেজ করা স্ট্যান্ডার্ড ব্লুটুথ এনক্রিপশন ব্যবহার করে, ডিভাইসগুলির মধ্যে একটি এনক্রিপ্ট করা চ্যানেল থাকে।
মেঘ
ব্লুটুথ উপলভ্য না থাকলে, Google Cloud-এর মাধ্যমে ডেটা অটোমেটিক রাউট করা হয়। Google Cloud-এর মাধ্যমে ট্রান্সফার করা সব ডেটা এন্ড-টু-এন্ড এনক্রিপ্ট করা হয়।
যোগাযোগের নিরাপত্তা
Wear OS ডিভাইসে ইনস্টল করা অ্যাপ এবং কাছাকাছি কোনও হ্যান্ডহেল্ড ডিভাইসে ইনস্টল করা একই অ্যাপের মধ্যে আরও নিরাপদ যোগাযোগ প্রদান করার জন্য Google Play পরিষেবা নিম্নলিখিত বিধিনিষেধগুলি প্রয়োগ করে:
- প্যাকেজের নাম সব ডিভাইসে একই হতে হবে।
- প্যাকেজের স্বাক্ষর সব ডিভাইসে একই হতে হবে।
কানেকশনের ধরন যাই হোক না কেন, অন্য কোনও অ্যাপের কাছে ডেটার অ্যাক্সেস নেই।
সেট-আপ করুন
Wearable Data Layer API-এর নিম্নলিখিত ডিপেন্ডেন্সি আছে:
- Google Play পরিষেবার লেটেস্ট ভার্সন।
- Wear OS ডিভাইস বা Wear OS এমুলেটর।
আপনার Wear মডিউলের build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি অন্তর্ভুক্ত করুন:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
প্রাথমিক পেয়ারিং প্রসেস সহজ করা
Horologist প্ল্যাটফর্ম API-এর উপরে বেশ কিছু সহায়ক লাইব্রেরি প্রদান করে। এতে একটি ডেটা লেয়ার লাইব্রেরি অন্তর্ভুক্ত থাকে যা মোবাইল ডিভাইস এবং Wear OS ডিভাইসের মধ্যে কানেকশন স্থাপন করতে সাহায্য করে। এছাড়াও, এটি নিম্নলিখিত কাজগুলি করার জন্য সুবিধাজনক API প্রদান করে:
- অন্য ডিভাইসে অ্যাপ ইনস্টল করুন।
- অন্য ডিভাইসে অ্যাপটি চালু করুন।
- অন্য ডিভাইসে নির্দিষ্ট অ্যাক্টিভিটি লঞ্চ করুন।
- কম্প্যানিয়ন অ্যাপ চালু করুন।
ডেটা লেয়ার অ্যাক্সেস করা
Data Layer API কল করতে, Wearable ক্লাস ব্যবহার করে বিভিন্ন ক্লায়েন্ট ক্লাসের ইনস্ট্যান্স পান, যেমন DataClient এবং MessageClient।
আরও তথ্যের জন্য, DataLayer স্যাম্পেল দেখুন।
একটি মিনিমাল ক্লায়েন্ট ব্যবহার করুন
ক্লায়েন্ট তৈরি করতে, নিম্নলিখিত উদাহরণ কোড দেখুন:
val dataClient = Wearable.getDataClient(this)
val available = try { GoogleApiAvailability.getInstance() .checkApiAvailability(client) .await() true } catch (e: AvailabilityException) { // API is not available in this device. false }
যেকোনও সঠিক Android কনটেক্সট ব্যবহার করা যেতে পারে। আপনি যদি Activity-এর স্কোপের মধ্যে
API ব্যবহার করেন, তাহলে Wearable ক্লাসের
getDataClient() পদ্ধতি ব্যবহার করুন। এর ফলে, কিছু ইন্টার্যাকশন বিজ্ঞপ্তি হিসেবে না দেখিয়ে ডায়ালগ হিসেবে দেখানো হয়, যেমন ব্যবহারকারীকে Google Play পরিষেবার ভার্সন আপডেট করতে বলা হলে।
ডিফল্ট হিসেবে, অ্যাপের প্রধান UI থ্রেডে লিসনারদের কলব্যাক করা হয়। অন্য থ্রেডে
কলব্যাক পেতে, কাস্টম Looper নির্দিষ্ট করতে
WearableOptions অবজেক্ট ব্যবহার করুন।
আরও তথ্যের জন্য, WearableOptions.Builder রেফারেন্স দেখুন।
প্রয়োজন অনুযায়ী ক্লায়েন্ট ইনস্ট্যান্স আবার তৈরি করুন
DataClient এবং MessageClient-এর মতো পরিধানযোগ্য API ক্লায়েন্ট
তৈরি করতে বেশি খরচ হয় না। তাই ক্লায়েন্ট ধরে রাখার পরিবর্তে, আপনার অ্যাপের সাথে মানানসই স্টাইল ব্যবহার করে, প্রয়োজন অনুযায়ী সেগুলি আবার তৈরি করুন।
ক্লায়েন্ট স্টেট, যেমন রেজিস্টার করা শ্রোতাদের সেট, সব ক্লায়েন্ট জুড়ে শেয়ার করা হয় এবং অ্যাপ চলাকালীন Google Play পরিষেবা আপডেট করা হলে তা সংরক্ষিত থাকে।