Wearable Data Layer API, যা Google Play পরিষেবার অংশ, তা পরিধানযোগ্য ডিভাইস (যেমন স্মার্ট ওয়াচ) এবং কানেক্ট করা হ্যান্ডহেল্ড ডিভাইসের (সাধারণত স্মার্টফোন) মধ্যে যোগাযোগের চ্যানেল প্রদান করে। এটি হল ডিভাইসগুলির মধ্যে ডেটা সিঙ্ক্রোনাইজ ও ট্রান্সফার করার একটি উপায়।
মনে রাখবেন: এই API শুধুমাত্র Wear OS ওয়াচ এবং পেয়ার করা Android ডিভাইসে উপলভ্য। iOS ফোনের সাথে পেয়ার করা Wear OS ওয়াচের ক্ষেত্রে, ইন্টারনেট কানেকশন উপলভ্য থাকলে, অ্যাপ অন্যান্য ক্লাউড-ভিত্তিক এপিআই কোয়েরি করতে পারে। এইসব অন্যান্য API সম্পর্কে আরও তথ্য পেতে, Wear OS-এ নেটওয়ার্ক অ্যাক্সেস ও সিঙ্ক লিঙ্কে যান।
সতর্কতা: ডেটা লেয়ার API হ্যান্ডহেল্ড ও পরিধানযোগ্য ডিভাইসের মধ্যে যোগাযোগের জন্য ডিজাইন করা হয়েছে, তাই এই ডিভাইসগুলির মধ্যে যোগাযোগ সেট-আপ করার জন্য আপনি শুধুমাত্র এই API ব্যবহার করতে পারবেন। যেমন, কমিউনিকেশন চ্যানেল তৈরি করতে লো-লেভেল সকেট খোলার চেষ্টা করবেন না।
সাধারণ ব্যবহারিক প্রয়োগ
ইন্টার্যাকশন যদি শুধুমাত্র ওয়াচ ও ফোনের মধ্যে সীমাবদ্ধ থাকে, তাহলে Data Layer API ব্যবহার করুন। যেমন:
- রিমোট কন্ট্রোল: ওয়াচটি ফোনের রিমোট হিসেবে কাজ করে (যেমন, ফোনে চলা মিউজিক প্লেয়ার কন্ট্রোল করা, প্রেজেন্টেশন স্লাইড করা, ক্যামেরা শাটার হিসেবে কাজ করা)।
- হ্যান্ডহেল্ড অ্যাপ লঞ্চ করা: "ফোনে খুলুন" বোতামের ফিচার।
- যাচাইকরণ ব্রিজিং: প্রাথমিক সেট-আপের সময় ফোন থেকে ওয়াচে সেশন টোকেন পাঠানো।
অনেক সাধারণ পরিস্থিতির ক্ষেত্রে, পরিবর্তে আপনার আগে থেকে থাকা ক্লাউড ইনফ্রাস্ট্রাকচার ব্যবহার করা উচিত, যেমন এইসব ক্ষেত্রে:
- ডেটা সেভ করা: ওয়ার্কআউট, নোট।
- কন্টেন্ট ফেচ করা: অতীতের ওয়ার্কআউটের তালিকা লোড করা, মিউজিক ডাউনলোড করা, আবহাওয়া সংক্রান্ত তথ্য ফেচ করা।
- সিঙ্ক করার অবস্থা: ব্যবহারকারী ওয়েবে তার প্রোফাইল ফটো পরিবর্তন করলে, ফোন কোয়েরি না করে, ক্লাউড ব্যবহার করে আপডেট দেখুন।
এইসব পরিস্থিতির জন্য, ডেটা লেয়ার API-এর পরিবর্তে আপনার আগে থেকে থাকা এন্ডপয়েন্ট ও ইনফ্রাস্ট্রাকচার ব্যবহার করুন।
যোগাযোগের বিকল্প
নিম্নলিখিত পদ্ধতিগুলির মধ্যে কোনও একটিতে ডেটা ট্রান্সফার করা হয়:
- Wear OS ডিভাইস ও অন্য ডিভাইসের মধ্যে ব্লুটুথ কানেকশন তৈরি করা থাকলে, সরাসরি।
- LTE বা ওয়াই-ফাইয়ের মতো উপলভ্য নেটওয়ার্কের মাধ্যমে, মধ্যস্থতাকারী হিসেবে Google-এর সার্ভারে নেটওয়ার্ক নোড ব্যবহার করে।
ডিভাইসে উপলভ্য কানেকশনের উপর নির্ভর করে, সব ডেটা লেয়ার ক্লায়েন্ট ব্লুটুথ বা ক্লাউড ব্যবহার করে ডেটা শেয়ার করতে পারে। ধরে নিন যে ডেটা লেয়ার ব্যবহার করে ট্রান্সমিট করা ডেটা কোনও এক সময় Google-এর মালিকানাধীন সার্ভার ব্যবহার করতে পারে।
ব্লুটুথ
ব্লুটুথ ব্যবহার করে ডিভাইস কানেক্ট করা হলে, ডেটা লেয়ার এই কানেকশন ব্যবহার করে। ডিভাইসগুলির মধ্যে একটি এনক্রিপ্টেড চ্যানেল থাকে, যা Google Play পরিষেবার মাধ্যমে ম্যানেজ করা হয় এবং স্ট্যান্ডার্ড Bluetooth এনক্রিপশন ব্যবহার করে।
মেঘ
ব্লুটুথ উপলভ্য না থাকলে, 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 পরিষেবা আপডেট করা হলেও এটি সংরক্ষিত থাকে।