Commissioning API কোনও অ্যাপকে এগুলির মধ্যে যেকোনও একটিতে কমিশন করার অনুমতি দেয়:
- আপনার ফ্যাব্রিক এবং Google ফ্যাব্রিক।
- শুধুমাত্র Google ফ্যাব্রিক।
Matter ডিভাইস কমিশন করার উপায়
কমিশনিং প্রসেস শুরু করা যেতে পারে:
আপনার অ্যাপে সরাসরি কমিশন করার অনুরোধ করুন
অ্যাপে সরাসরি কমিশন করার অনুরোধ অ্যাপের একটি বোতামের মাধ্যমে ট্রিগার করা যেতে পারে এবং দুটি উপায়ে করা যেতে পারে:
একক ফ্যাব্রিকের জন্য
কমিশনিংয়ের অনুরোধ করতে:
আপনার অ্যাক্টিভিটিতে
ActivityResultLauncherশুরু করুন। ব্যবহারকারী যদি Google ফ্যাব্রিকের মাধ্যমে ডিভাইসটি চালু করে থাকেন, তাহলে ফলাফলে ব্যবহারকারীর ডিভাইসটি চালু করার সময় যে নাম দিয়েছিলেন সেটি অন্তর্ভুক্ত থাকতে পারে।private val commissioningLauncher = registerForActivityResult(StartIntentSenderForResult()) { result -> val resultCode = result.resultCode if (resultCode == RESULT_OK) { Log.i("CommissioningActivity", "Commissioning success") val deviceName = CommissioningResult.fromIntentSenderResult(result.resultCode, result.data).deviceName } else { Log.i("CommissioningActivity", "Commissioning failed") } }রিসিভ করা পেলোড ডেটা সহ
CommissioningRequestতৈরি করুন এবংsetStoreToGoogleFabricব্যবহার করে Google ফ্যাব্রিকের সাথে ডিভাইস কমিশন করার বিকল্প সেট করুন:val commissioningRequest = CommissioningRequest.builder() .setOnboardingPayload(payload) .setStoreToGoogleFabric(true) // set all other options that you care about .build()আপনি যদি নিজের ফ্যাব্রিকের পাশাপাশি Google ফ্যাব্রিকের সাথেও ডিভাইসটি কমিশন করতে চান, তাহলে
CommissioningRequest-এsetCommissioningServiceদিয়ে আপনার কমিশনিং পরিষেবা সেট করুন।কমিশনিং শুরু করতে
CommissioningClientইনস্ট্যান্স ব্যবহার করুন:commissioningClient .commissionDevice(commissioningRequest) .addOnSuccessListener { result -> Log.i("CommissioningActivity", "Commissioning success") _commissioningIntentSender.postValue(result) } .addOnFailureListener { error -> Log.i("CommissioningActivity", "Commissioning failed") }যেখানে
_commissioningIntentSender-এর সংজ্ঞা হল:private val _commissioningIntentSender = MutableLiveData<IntentSender?>() val commissioningIntentSender: LiveData<IntentSender?> get() = _commissioningIntentSenderCommissioningClientইনটেন্ট প্রেরককে ফেরত পাঠালে, প্রেরক চালু করুন:commissioningIntentSender.observe(this) { sender -> if (sender != null) { commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build()) } }
একাধিক ফ্যাব্রিকের জন্য (মাল্টি-অ্যাডমিন)
কোনও ডিভাইসে একাধিক Matter ফ্যাব্রিক সেট-আপ করতে হলে, Android-এ কমিশনিং API-এর জন্য মাল্টি-অ্যাডমিন দেখুন।
দ্রুত পেয়ারিং বা QR-কোড স্ক্যানিংয়ের জন্য Matter কমিশনিং এন্ট্রি পয়েন্ট (শুধুমাত্র Android)
Android-এ 'দ্রুত পেয়ার' বা QR কোডের মাধ্যমে কমিশন করার অনুরোধ দুইভাবে করা যেতে পারে:
একক ফ্যাব্রিকের জন্য
GHA-এর প্রয়োজন ছাড়াই
কোনও অ্যাপের জন্য সম্পূর্ণ কমিশনিং ক্ষমতা প্রদান করতে
ACTION_START_COMMISSIONING ইনটেন্ট ফিল্টার ব্যবহার করুন। Google ফ্যাব্রিক চালু করার সময়, এর মধ্যে
ব্যবহারকারীকে ডিভাইসের নাম অ্যাসাইন করার অনুমতি দেওয়া অন্তর্ভুক্ত।
ACTION_START_COMMISSIONINGGoogle Fabric কমিশনিংয়ের জন্য সহায়তা নির্দেশ করতে, আপনার
AndroidManifest.xml ফাইলের মধ্যে বেছে নেওয়া অ্যাক্টিভিটি ডিক্লারেশনে নিম্নলিখিত
intent-filter যোগ করুন:
<intent-filter>
<action android:name="com.google.android.gms.home.matter.ACTION_START_COMMISSIONING" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
কমিশনিং API-এর অ্যাপ
পিকার-এ সাজেস্ট করা Matter অ্যাপের তালিকায় আপনার অ্যাপ অন্তর্ভুক্ত করতে intent-filter ব্যবহার করা হয়।
আপনার অ্যাপটি সাজেস্ট করা অ্যাপের মধ্যে না থাকলে, সেটি অন্য অ্যাপ বেছে নিন বিকল্পে দেখা যাবে।
ব্যবহারকারী আপনার অ্যাপ বেছে নিলে, আপনার অ্যাপ লঞ্চ করা হয় এবং
ACTION_START_COMMISSIONING
ইনটেন্ট সহ বেছে নেওয়া অ্যাক্টিভিটিতে ডাইরেক্ট করা হয়।
একাধিক ফ্যাব্রিকের জন্য (মাল্টি-অ্যাডমিন)
এছাড়াও, আপনি মাল্টি-অ্যাডমিন পরিস্থিতিতে FastPair ফ্লো ব্যবহার করতে পারবেন। আরও তথ্যের জন্য, Android-এ Commissioning API-এর জন্য মাল্টি-অ্যাডমিন দেখুন।
ইনকামিং ইনটেন্ট ম্যানেজ করা
আপনার অ্যাক্টিভিটি চালু হয়ে গেলে, এটি আগে থেকে থাকা
ACTION_START_COMMISSIONING ইনটেন্ট চেক করে পেলোড ফিরিয়ে আনবে:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val payload = if (Matter.ACTION_START_COMMISSIONING.equals(intent.getAction())) {
intent.getStringExtra(Matter.EXTRA_ONBOARDING_PAYLOAD)
} else {
null
}
val commissioningRequest = CommissioningRequest.builder()
.setOnboardingPayload(payload)
.setStoreToGoogleFabric(true)
// set all other options that you care about
.build()
startCommissioning(commissioningRequest)
}
null নয় এমন পেলোড ভ্যালু থেকে বোঝা যায় যে ব্যবহারকারী আগেই
ডিভাইসের QR কোড স্ক্যান করেছেন অথবা পেয়ারিং কী লিখেছেন। null পেলোড ভ্যালু
থাকার অর্থ এই নয় যে কমিশন করা বন্ধ করে দিতে হবে।
কমিশনযোগ্য ডিসকভারি বিজ্ঞপ্তি বন্ধ করুন
ডিফল্ট হিসেবে, Android-এ Google Play services "হাফশিট" বিজ্ঞপ্তি ব্যবহার করে যা মোবাইল ডিভাইসের স্ক্রিনের নিচের অর্ধেক অংশ কভার করে। এর ফলে ব্যবহারকারীকে আগাম ইঙ্গিত দেওয়া হয় যে কমিশন করা যাবে এমন Matter ডিভাইস কাছাকাছি আছে।
আপনার অ্যাপ ফোরগ্রাউন্ডে থাকাকালীন বাধা এড়াতে, আপনি
suppressHalfSheetNotification()
মেথড কল করে এইসব বিজ্ঞপ্তি
বন্ধ করতে পারেন। আরও তথ্যের জন্য API ডকুমেন্টেশন দেখুন।
আপনার অ্যাপ ১৫ মিনিটের বেশি সময় ধরে ফোরগ্রাউন্ডে থাকলে,
এই API-এর মাধ্যমে চালু করা সাপ্রেশন টাইম-আউট হয়ে যায়। টাইম-আউট হওয়ার পরে সাপ্রেশন আবার চালু করতে, suppressHalfSheetNotification() আবার কল করুন, অন্যথায় হাফশিট বিজ্ঞপ্তি
দেখানো শুরু হবে।
আপনার ফ্যাব্রিকের Matter ডিভাইস Google-এর সাথে কীভাবে শেয়ার করবেন?
Google আপনাকে দৃঢ়ভাবে সাজেস্ট করে যে আপনি নিজের ফ্যাব্রিকের সাথে Google ফ্যাব্রিকের মাধ্যমে আগে থেকে সেট-আপ করা ডিভাইস শেয়ার করার প্রাথমিক উপায় হিসেবে কমিশনিং API ব্যবহার করুন। Share API-এর কিছু সীমাবদ্ধতা আছে এবং এটি অন্যান্য ব্যবহারের ক্ষেত্রে সংরক্ষিত রাখা উচিত।
Share API-এর পরিবর্তে কেন আপনার Commissioning API ব্যবহার করা উচিত?
কমিশনিং API আপনাকে সরাসরি Google ফ্যাব্রিকের সাথে ডিভাইস শেয়ারিং ট্রিগার করতে দেয়, যা সম্ভব হলে পছন্দের পদ্ধতি। Share API-এর মাধ্যমে, ব্যবহারকারীকে আরও ধাপ সম্পূর্ণ করতে হবে। যেমন, ব্যবহারকারীর ডিভাইসে GHA ইনস্টল করা থাকতে হবে এবং প্রসেসটি সফলভাবে সম্পূর্ণ করার জন্য তাকে GHA বেছে নিতে হবে।
কমিশনিং API ব্যবহার করতে, আপনাকে কমিশনিং উইন্ডো খুলতে হবে এবং কমিশনিং API কল করতে হবে, যেমনটি সেকেন্ডারি Matter কমিশনার হিসেবে কমিশনিং API কীভাবে ব্যবহার করবেন-এ বর্ণনা করা হয়েছে।
আপনার কখন Share API ব্যবহার করা উচিত?
আপনি Share API ব্যবহার করে ব্যবহারকারীকে একটি উপযুক্ত অ্যাপ্লিকেশন বেছে নিতে দিতে পারেন যাতে তিনি সাধারণভাবে অন্য Matter ইকোসিস্টেমের সাথে ডিভাইস শেয়ার করতে পারেন।