Commissioning API, bir uygulamanın aşağıdakilerden birine devreye alınmasına olanak tanır:
- Kumaşınız ve Google'ın kumaşı.
- Yalnızca Google kumaşı.
Matter cihazlarını kullanıma hazırlama yöntemleri
Devreye alma işlemi şu şekilde başlatılabilir:
Doğrudan uygulamanızda komisyon isteğinde bulunma
Uygulamada doğrudan devreye alma isteğinde bulunma, uygulamadaki bir düğmeyle tetiklenebilir ve iki şekilde yapılabilir:
Tekstil ürünleri için
Komisyon isteğinde bulunmak için:
Etkinliğinizde bir
ActivityResultLauncherbaşlatın. Kullanıcı, cihazı Google kumaşında devreye aldıysa sonuç, kullanıcının cihazı devreye alırken atadığı adı içerebilir.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") } }Alınan yük verileri de dahil olmak üzere bir
CommissioningRequestoluşturun vesetStoreToGoogleFabrickullanarak cihazı Google Fabric'e dahil etme seçeneğini ayarlayın:val commissioningRequest = CommissioningRequest.builder() .setOnboardingPayload(payload) .setStoreToGoogleFabric(true) // set all other options that you care about .build()Cihazı hem Google kumaşına hem de kendi kumaşınıza devreye almak istiyorsanız
CommissioningRequestiçindesetCommissioningServiceile devreye alma hizmetinizi ayarlayın.Devreye alma işlemini başlatmak için
CommissioningClientörneğini kullanın:commissioningClient .commissionDevice(commissioningRequest) .addOnSuccessListener { result -> Log.i("CommissioningActivity", "Commissioning success") _commissioningIntentSender.postValue(result) } .addOnFailureListener { error -> Log.i("CommissioningActivity", "Commissioning failed") }Burada
_commissioningIntentSenderşu şekilde tanımlanır:private val _commissioningIntentSender = MutableLiveData<IntentSender?>() val commissioningIntentSender: LiveData<IntentSender?> get() = _commissioningIntentSenderCommissioningClient, amaç gönderenini döndürdükten sonra göndereni başlatın:commissioningIntentSender.observe(this) { sender -> if (sender != null) { commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build()) } }
Birden fazla kumaş için (çoklu yönetici)
Bir cihazda birden fazla Matter kumaşı ayarlamanız gerekiyorsa Android'de devreye alma API'si için çoklu yönetici başlıklı makaleyi inceleyin.
Hızlı Eşleme veya QR kodu tarama için Matter devreye alma giriş noktası (yalnızca Android)
Android'de hızlı eşleme veya QR kodu aracılığıyla devreye alma isteğinde bulunmak için iki yöntem kullanılabilir:
Tekstil ürünleri için
ACTION_START_COMMISSIONING intent filtresini kullanarak bir uygulamaya GHA'e gerek kalmadan tam hazırlama özelliği sağlayın. Google kumaşına devreye alma işlemi yapılırken kullanıcıya cihaza ad atama izni verilir.
ACTION_START_COMMISSIONING Kullanılarak
Devreye Alma AkışıGoogle kumaşla devreye alma desteğini belirtmek için intent-filter dosyanızdaki seçilen etkinlik bildirimine aşağıdaki intent-filter öğesini ekleyin:AndroidManifest.xml
<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, uygulamanızı Commissioning API'lerindeki önerilen Matter uygulamalar listesine dahil etmek için kullanılır.
Uygulamanız önerilen uygulamalar arasında değilse Başka bir uygulama seçin seçeneğinde görünür.
Kullanıcı uygulamanızı seçtiğinde uygulamanız başlatılır ve ACTION_START_COMMISSIONING
amacıyla seçilen etkinliğe yönlendirilir.
Birden fazla kumaş için (çoklu yönetici)
Çoklu yönetici senaryolarında FastPair akışını da kullanabilirsiniz. Daha fazla bilgi için Android'de Commissioning API için çoklu yönetici başlıklı makaleyi inceleyin.
Gelen niyeti işleme
Etkinliğiniz başlatıldıktan sonra mevcut ACTION_START_COMMISSIONING amacını kontrol etmeli ve yükü almalıdır:
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 olmayan bir yük değeri, kullanıcının cihazın QR kodunu taradığını veya eşleme anahtarını girdiğini gösterir. null yük değeri, devreye alma işleminin durdurulması gerektiği anlamına gelmez.
Komisyon kazandıran keşif bildirimlerini engelleme
Google Play services Android, varsayılan olarak kullanıcıları yakında komisyon kazandıran Matter cihazlar olduğu konusunda proaktif olarak bilgilendirmek için mobil cihaz ekranının alt yarısını kaplayan "yarım sayfa" bildirimlerini kullanır.
Uygulamanız ön plandayken kesintileri önlemek için suppressHalfSheetNotification() yöntemini çağırarak bu bildirimleri bastırabilirsiniz. Daha fazla bilgi için API belgelerini inceleyin.
Bu API ile etkinleştirilen bastırma, uygulamanız 15 dakikadan uzun süre ön planda kalırsa zaman aşımına uğrar. Zaman aşımından sonra bastırmayı yeniden etkinleştirmek için suppressHalfSheetNotification() işlevini tekrar çağırın. Aksi takdirde, yarım sayfa bildirimleri görünmeye başlar.
Google ile kumaşınızdaki Matter cihazları nasıl paylaşmalısınız?
Google, Commissioning API'yi, kendi kumaşınızda daha önce ayarladığınız bir cihazı Google kumaşıyla paylaşmanın birincil yolu olarak kullanmanızı önemle tavsiye eder. Paylaşım API'sinin sınırlamaları vardır ve diğer kullanım alanları için ayrılmalıdır.
Neden Share API yerine Commissioning API'yi kullanmalısınız?
Commissioning API, uygun olduğunda tercih edilen yöntem olan Google yapısıyla doğrudan cihaz paylaşımını tetiklemenize olanak tanır. Paylaşım API'si ile son kullanıcının daha fazla adım uygulaması gerekir. Örneğin, son kullanıcının GHA uygulamasını yüklemiş olması ve başarılı bir işlem için süreç sırasında GHA seçmesi gerektiğini bilmesi gerekir.
Commissioning API'yi kullanmak için Commissioning API'yi ikincil Matter komisyoneri olarak kullanma başlıklı makalede açıklandığı gibi devreye alma penceresini açıp Commissioning API'yi çağırmanız gerekir.
Paylaşım API'sini ne zaman kullanmalısınız?
Son kullanıcının, bir cihazı diğer Matter ekosistemleriyle genel olarak paylaşmak için uygun bir uygulama seçmesine izin vermek üzere Share API'yi kullanabilirsiniz.