কমিশনিং এপিআই একটি অ্যাপকে নিম্নলিখিত যেকোনো একটিতে কমিশন করার সুযোগ দেয়:
- আপনার কাপড় এবং গুগলের কাপড়।
- শুধুমাত্র গুগল ফ্যাব্রিক।
ম্যাটার ডিভাইস চালু করার উপায়
চালুকরণ প্রক্রিয়া শুরু করা যেতে পারে:
আপনার অ্যাপে সরাসরি কমিশন করার জন্য অনুরোধ করুন
অ্যাপের মধ্যেই একটি বাটনের মাধ্যমে সরাসরি কমিশনিংয়ের অনুরোধ চালু করা যায়, এবং এটি দুটি উপায়ে করা যেতে পারে:
একক কাপড়ের জন্য
চালু করার অনুরোধ করতে:
আপনার অ্যাক্টিভিটিতে একটি
ActivityResultLauncherচালু করুন। যদি ব্যবহারকারী Google fabric-এ ডিভাইসটি চালু করে থাকেন, তাহলে ফলাফলে সেই নামটি অন্তর্ভুক্ত থাকতে পারে যা ব্যবহারকারী ডিভাইসটি চালু করার সময় নির্ধারণ করেছিলেন।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 fabric-এ কমিশন করার বিকল্পটি সেট করুন:val commissioningRequest = CommissioningRequest.builder() .setOnboardingPayload(payload) .setStoreToGoogleFabric(true) // set all other options that you care about .build()আপনি যদি ডিভাইসটিকে গুগল ফ্যাব্রিক এবং আপনার নিজস্ব ফ্যাব্রিক উভয় ক্ষেত্রেই কমিশন করতে চান, তাহলে
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() = _commissioningIntentSenderএকবার
CommissioningClientইন্টেন্ট সেন্ডারটি ফেরত দিলে, সেন্ডারটি চালু করুন:commissioningIntentSender.observe(this) { sender -> if (sender != null) { commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build()) } }
একাধিক কাপড়ের জন্য (একাধিক অ্যাডমিন)
যদি কোনো ডিভাইসে একাধিক Matter ফ্যাব্রিক সেট আপ করার প্রয়োজন হয়, তাহলে অ্যান্ড্রয়েডে কমিশনিং এপিআই-এর জন্য মাল্টি-অ্যাডমিন দেখুন।
ফাস্ট পেয়ার বা কিউআর-কোড স্ক্যানিং এর জন্য ম্যাটার কমিশনিং এন্ট্রি পয়েন্ট (শুধুমাত্র অ্যান্ড্রয়েড)
অ্যান্ড্রয়েডে ফাস্ট পেয়ার বা কিউআর কোডের মাধ্যমে কমিশনিংয়ের অনুরোধ দুটি উপায়ে করা যেতে পারে:
একক কাপড়ের জন্য
GHA এর প্রয়োজন ছাড়াই কোনো অ্যাপের জন্য সম্পূর্ণ কমিশনিং ক্ষমতা প্রদান করতে ACTION_START_COMMISSIONING ইন্টেন্ট ফিল্টারটি ব্যবহার করুন। গুগল ফ্যাব্রিক-এ কমিশনিং করার সময়, এর মধ্যে ব্যবহারকারীকে ডিভাইসটির একটি নাম নির্ধারণ করার অনুমতি দেওয়াও অন্তর্ভুক্ত থাকে।

ACTION_START_COMMISSIONING ব্যবহার করে কমিশনিং প্রবাহ Google fabric commissioning-এর জন্য সমর্থন নির্দেশ করতে, আপনার 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>
কমিশনিং এপিআই অ্যাপ পিকার- এ প্রস্তাবিত Matter অ্যাপের তালিকায় আপনার অ্যাপকে অন্তর্ভুক্ত করতে intent-filter ব্যবহার করা হয়। যদি আপনার অ্যাপটি প্রস্তাবিত অ্যাপগুলোর মধ্যে না থাকে, তবে এটি 'অন্যান্য অ্যাপ বেছে নিন' বিকল্পে প্রদর্শিত হয়।
ব্যবহারকারী আপনার অ্যাপটি নির্বাচন করার সাথে সাথে, অ্যাপটি চালু হয় এবং একটি ACTION_START_COMMISSIONING ইন্টেন্টের মাধ্যমে নির্বাচিত অ্যাক্টিভিটিতে পরিচালিত হয়।
একাধিক কাপড়ের জন্য (একাধিক অ্যাডমিন)
আপনি মাল্টি-অ্যাডমিন পরিস্থিতিতেও ফাস্টপেয়ার ফ্লো ব্যবহার করতে পারেন। আরও তথ্যের জন্য, অ্যান্ড্রয়েডে কমিশনিং এপিআই-এর জন্য মাল্টি-অ্যাডমিন দেখুন।
আগত অভিপ্রায়টি পরিচালনা করুন
একবার আপনার অ্যাক্টিভিটি চালু হলে, এটির বিদ্যমান 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
}
CommissioningRequest.builder()
.setOnboardingPayload(payload)
.setStoreToGoogleFabric(true)
// set all other options that you care about
startCommissioning(commissioningRequest)
}
পেলোড ভ্যালু যদি null না হয়, তবে তা নির্দেশ করে যে ব্যবহারকারী ইতোমধ্যে হয় ডিভাইসের কিউআর কোড স্ক্যান করেছেন, অথবা পেয়ারিং কী প্রবেশ করিয়েছেন। পেলোড ভ্যালু null অর্থ এই নয় যে কমিশনিং প্রক্রিয়াটি বাতিল করতে হবে।
কমিশনযোগ্য আবিষ্কার বিজ্ঞপ্তিগুলি দমন করুন

ডিফল্টরূপে, Android Google Play services 'হাফশিট' নোটিফিকেশন ব্যবহার করে, যা মোবাইল ডিভাইসের স্ক্রিনের নিচের অর্ধেক অংশ জুড়ে থাকে। এর মাধ্যমে ব্যবহারকারীদের আগে থেকেই জানানো হয় যে কাছাকাছি কমিশনযোগ্য Matter ডিভাইস রয়েছে।
আপনার অ্যাপ ফোরগ্রাউন্ডে থাকা অবস্থায় যাতে কোনো বাধা না আসে, সেজন্য আপনি suppressHalfSheetNotification() মেথডটি কল করে এই নোটিফিকেশনগুলো সাপ্রেস করতে পারেন। আরও তথ্যের জন্য API ডকুমেন্টেশন দেখুন।
আপনার অ্যাপ ১৫ মিনিটের বেশি সময় ধরে ফোরগ্রাউন্ডে থাকলে এই API দ্বারা সক্রিয় করা সাপ্রেশনটির মেয়াদ শেষ হয়ে যায়। মেয়াদ শেষ হওয়ার পর সাপ্রেশন পুনরায় সক্রিয় করতে, suppressHalfSheetNotification() আবার কল করুন, অন্যথায় হাফশিট নোটিফিকেশন আসা শুরু হবে।
আপনার ফ্যাব্রিকে থাকা ম্যাটার ডিভাইসগুলো গুগলের সাথে কীভাবে শেয়ার করবেন?
গুগল দৃঢ়ভাবে সুপারিশ করে যে, আপনার নিজের ফ্যাব্রিকে আগে থেকে সেট আপ করা কোনো ডিভাইস গুগল ফ্যাব্রিকে শেয়ার করার প্রাথমিক উপায় হিসেবে আপনি কমিশনিং এপিআই (Commissioning API) ব্যবহার করুন। শেয়ার এপিআই (Share API)-এর সীমাবদ্ধতা রয়েছে এবং এটি অন্যান্য ব্যবহারের জন্য সংরক্ষিত রাখা উচিত।
শেয়ার এপিআই (Share API)-এর পরিবর্তে কমিশনিং এপিআই (Commissioning API) কেন ব্যবহার করা উচিত?
কমিশনিং এপিআই আপনাকে সরাসরি গুগল ফ্যাব্রিকের সাথে একটি ডিভাইস শেয়ার করা শুরু করার সুযোগ দেয়, যা সম্ভব হলে সবচেয়ে পছন্দের পদ্ধতি। শেয়ার এপিআই ব্যবহার করলে, ব্যবহারকারীকে আরও কিছু পদক্ষেপ নিতে হয়। উদাহরণস্বরূপ, ব্যবহারকারীর ডিভাইসে অবশ্যই GHA ইনস্টল করা থাকতে হবে এবং প্রক্রিয়াটি সফল করার জন্য তাকে GHA নির্বাচন করতে জানতে হবে।
কমিশনিং এপিআই ব্যবহার করতে, আপনাকে কমিশনিং উইন্ডোটি খুলতে হবে এবং কমিশনিং এপিআই কল করতে হবে, যেমনটি "How to use the Commissioning API as the secondary Matter commissioner" -এ বর্ণনা করা হয়েছে।
কখন আপনার শেয়ার এপিআই ব্যবহার করা উচিত?
আপনি শেয়ার এপিআই (Share API) ব্যবহার করে ব্যবহারকারীকে একটি উপযুক্ত অ্যাপ্লিকেশন বেছে নেওয়ার সুযোগ দিতে পারেন, যার মাধ্যমে একটি ডিভাইসকে সাধারণভাবে অন্যান্য Matter ইকোসিস্টেমের (Matter ecosystem) সাথে শেয়ার করা যাবে।