Commissioning API memungkinkan aplikasi melakukan commissioning ke:
- Kain Anda dan kain Google.
- Hanya bahan buatan Google.
Cara melakukan commissioning perangkat Matter
Proses aktivasi dapat dimulai:
Meminta aktivasi langsung di aplikasi Anda
Meminta penyiapan langsung di aplikasi dapat dipicu oleh tombol di aplikasi, dan dapat dilakukan dengan dua cara:
Untuk satu jenis kain
Untuk meminta penayangan:
Inisialisasi
ActivityResultLauncher
dalam aktivitas Anda. Jika pengguna melakukan penyiapan perangkat di platform Google, hasilnya dapat mencakup nama yang ditetapkan pengguna ke perangkat saat mereka melakukan penyiapan.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 mengaktifkan 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 mengaktifkan perangkat ke fabric Google dan fabric Anda sendiri, tetapkan layanan commissioning dengan
setCommissioningService
diCommissioningRequest
.Gunakan instance
CommissioningClient
untuk memulai aktivasi:commissioningClient .commissionDevice(commissioningRequest) .addOnSuccessListener { result -> Log.i("CommissioningActivity", "Commissioning success") _commissioningIntentSender.postValue(result) } .addOnFailureListener { error -> Log.i("CommissioningActivity", "Commissioning failed") }
Dengan
_commissioningIntentSender
ditentukan sebagai:private val _commissioningIntentSender = MutableLiveData<IntentSender?>() val commissioningIntentSender: LiveData<IntentSender?> get() = _commissioningIntentSender
Setelah
CommissioningClient
menampilkan pengirim intent, luncurkan pengirim:commissioningIntentSender.observe(this) { sender -> if (sender != null) { commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build()) } }
Untuk beberapa kain (multi-admin)
Jika Anda perlu menyiapkan beberapa kain Matter di perangkat, lihat Multi-admin untuk Commissioning API di Android.
Titik entri penyiapan Matter untuk Pemindaian kode QR atau Sambungan Cepat (khusus Android)
Meminta penyiapan 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 penyiapan lengkap bagi aplikasi tanpa memerlukan
GHA. Saat melakukan commissioning ke platform Google, hal ini mencakup mengizinkan pengguna menetapkan nama ke perangkat.

ACTION_START_COMMISSIONING
Untuk menunjukkan dukungan terhadap commissioning kain 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 kain (multi-admin)
Anda juga dapat menggunakan alur FastPair dalam skenario multi-admin. Untuk mengetahui informasi selengkapnya, lihat Multi-admin for Commissioning API on 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
}
CommissioningRequest.builder()
.setOnboardingPayload(payload)
.setStoreToGoogleFabric(true)
// set all other options that you care about
startCommissioning(commissioningRequest)
}
Nilai payload yang bukan null
menunjukkan bahwa pengguna telah memindai kode QR perangkat, atau memasukkan kunci penyambungan. Nilai payload null
tidak berarti bahwa pemberian izin harus dibatalkan.
Menekan notifikasi penemuan yang dapat menghasilkan komisi

Secara default, Google Play services di Android menggunakan notifikasi "setengah layar" yang menutupi setengah bagian bawah layar perangkat seluler untuk memberikan indikasi proaktif kepada pengguna bahwa perangkat Matter yang dapat memperoleh komisi berada di dekatnya.
Untuk mencegah gangguan saat aplikasi Anda berada di latar depan, Anda dapat menekan notifikasi ini dengan memanggil metode suppressHalfSheetNotification()
. Lihat dokumentasi API untuk mengetahui informasi selengkapnya.
Penekanan yang diaktifkan oleh API ini akan berakhir jika aplikasi Anda berada di latar depan
selama lebih dari 15 menit. Untuk mengaktifkan kembali penekanan setelah waktu tunggu berakhir, panggil
suppressHalfSheetNotification()
lagi, jika tidak, notifikasi setengah layar akan
mulai muncul.
Bagaimana cara membagikan perangkat Matter di platform Anda kepada Google?
Google sangat menyarankan agar Anda menggunakan Commissioning API sebagai cara 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 platform Google, yang merupakan metode pilihan jika memungkinkan. Dengan Share API, pengguna akhir memerlukan lebih banyak langkah. Misalnya, pengguna akhir harus menginstal GHA, dan mereka harus tahu cara 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 komisioner Matter sekunder.
Kapan Anda harus menggunakan Share API?
Anda dapat menggunakan Share API untuk memungkinkan pengguna akhir memilih aplikasi yang memenuhi syarat untuk membagikan perangkat secara umum dengan ekosistem Matter lainnya.