Commissioning API memungkinkan aplikasi melakukan commissioning ke:
- Fabric Anda dan fabric Google.
- Hanya fabric Google.
Cara mengaktifkan perangkat Matter
Proses commissioning dapat dimulai:
Meminta commissioning langsung di aplikasi Anda
Meminta commissioning langsung di aplikasi dapat dipicu oleh tombol di aplikasi, dan dapat dilakukan dengan dua cara:
Untuk satu jenis kain
Untuk meminta commissioning:
Lakukan inisialisasi
ActivityResultLauncherdalam aktivitas Anda. Jika pengguna mengaktifkan perangkat di fabric Google, hasilnya dapat mencakup nama yang ditetapkan pengguna ke perangkat saat mengaktifkannya.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") } }Buat
CommissioningRequest, termasuk data payload yang diterima, dan tetapkan opsi untuk melakukan commissioning perangkat ke fabric Google, menggunakansetStoreToGoogleFabric:val commissioningRequest = CommissioningRequest.builder() .setOnboardingPayload(payload) .setStoreToGoogleFabric(true) // set all other options that you care about .build()Jika Anda ingin mengizinkan perangkat ke fabric Google serta fabric Anda sendiri, tetapkan layanan commissioning Anda dengan
setCommissioningServicediCommissioningRequest.Gunakan instance
CommissioningClientuntuk memulai commissioning:commissioningClient .commissionDevice(commissioningRequest) .addOnSuccessListener { result -> Log.i("CommissioningActivity", "Commissioning success") _commissioningIntentSender.postValue(result) } .addOnFailureListener { error -> Log.i("CommissioningActivity", "Commissioning failed") }Dengan
_commissioningIntentSenderditentukan sebagai:private val _commissioningIntentSender = MutableLiveData<IntentSender?>() val commissioningIntentSender: LiveData<IntentSender?> get() = _commissioningIntentSenderSetelah
CommissioningClientmenampilkan pengirim intent, luncurkan pengirim:commissioningIntentSender.observe(this) { sender -> if (sender != null) { commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build()) } }
Untuk beberapa fabric (multi-admin)
Jika Anda perlu menyiapkan beberapa fabric Matter di perangkat, lihat Multi-admin untuk Commissioning API di Android.
Titik entri commissioning Matter untuk Sambungan Cepat atau pemindaian kode QR (khusus Android)
Meminta commissioning melalui sambungan cepat atau kode QR di Android dapat dilakukan dengan dua cara:
Untuk satu jenis kain
Gunakan filter intent ACTION_START_COMMISSIONING
untuk memberikan kemampuan commissioning penuh untuk aplikasi tanpa memerlukan
GHA. Saat melakukan commissioning ke fabric Google, hal ini
mencakup mengizinkan pengguna menetapkan nama ke perangkat.
ACTION_START_COMMISSIONINGUntuk menunjukkan dukungan terhadap commissioning fabric Google, tambahkan
intent-filter berikut ke deklarasi aktivitas yang dipilih dalam
file AndroidManifest.xml Anda:
<intent-filter>
<action android:name="com.google.android.gms.home.matter.ACTION_START_COMMISSIONING" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
intent-filter digunakan untuk menyertakan aplikasi Anda dalam daftar aplikasi
Matter yang disarankan di pemilih
aplikasi Commissioning API.
Jika aplikasi Anda bukan salah satu aplikasi yang disarankan, aplikasi tersebut akan muncul di opsi Pilih aplikasi
lain.
Setelah pengguna memilih aplikasi Anda, aplikasi Anda akan diluncurkan dan diarahkan ke aktivitas yang dipilih dengan intent ACTION_START_COMMISSIONING.
Untuk beberapa fabric (multi-admin)
Anda juga dapat menggunakan alur FastPair dalam skenario multi-admin. Untuk mengetahui informasi selengkapnya, lihat Multi-admin untuk Commissioning API di Android.
Menangani intent yang masuk
Setelah diluncurkan, aktivitas Anda harus memeriksa intent
ACTION_START_COMMISSIONING yang ada dan mengambil payload:
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)
}
Nilai payload yang bukan null menunjukkan bahwa pengguna telah
memindai kode QR perangkat, atau memasukkan kunci penyambungan. Nilai payload null
tidak berarti commissioning harus dibatalkan.
Menonaktifkan notifikasi penemuan yang dapat dikenai komisi
Secara default, Google Play services di Android menggunakan notifikasi "halfsheet" yang menutupi separuh bawah layar perangkat seluler untuk memberikan indikasi proaktif kepada pengguna bahwa perangkat Matter yang dapat di-commission berada di sekitar.
Untuk mencegah gangguan saat aplikasi Anda berada di latar depan, Anda dapat
menonaktifkan notifikasi ini dengan memanggil
metode
suppressHalfSheetNotification(). Lihat dokumentasi API untuk mengetahui informasi selengkapnya.
Penekanan yang diaktifkan oleh API ini akan habis waktu jika aplikasi Anda berada di latar depan
selama lebih dari 15 menit. Untuk mengaktifkan kembali penekanan setelah waktu tunggu habis, panggil
suppressHalfSheetNotification() lagi. Jika tidak, notifikasi sheet setengah
akan mulai muncul.
Bagaimana cara membagikan perangkat Matter di fabric Anda ke Google?
Google sangat menyarankan agar Anda menggunakan Commissioning API sebagai sarana utama untuk membagikan perangkat yang telah Anda siapkan di fabric Anda sendiri ke fabric Google. Share API memiliki batasan dan harus dicadangkan untuk kasus penggunaan lainnya.
Mengapa Anda harus menggunakan Commissioning API, bukan Share API?
Commissioning API memungkinkan Anda memicu berbagi perangkat secara langsung dengan fabric Google, yang merupakan metode yang lebih disukai jika memungkinkan. Dengan Share API, diperlukan lebih banyak langkah untuk pengguna akhir. Misalnya, pengguna akhir harus menginstal GHA, dan mereka harus tahu untuk memilih GHA selama proses untuk memastikan keberhasilan.
Untuk menggunakan Commissioning API, Anda harus membuka jendela commissioning dan memanggil Commissioning API, seperti yang dijelaskan dalam Cara menggunakan Commissioning API sebagai commissioner Matter sekunder.
Kapan Anda harus menggunakan Share API?
Anda dapat menggunakan Share API untuk mengizinkan pengguna akhir memilih aplikasi yang memenuhi syarat untuk membagikan perangkat secara umum ke ekosistem Matter lainnya.