Commissioning API, bir uygulamanın aşağıdakilerden birini yapmasına olanak tanır:
- Kendi kumaşınız ve Google kumaşı.
- Yalnızca Google kumaşı.
Matter'ın devreye alınması için destek belirtme
Komisyon almak için Google Home Mobile SDK kullanıyorsanız Google Home Developer Console'a uygulama paket adını eklemeniz, Matter API'lerimizi uygulamanız ve ACTION_COMMISSION_DEVICE
intent'ini işleyerek uygulamanızın Matter komisyonunu desteklediğini belirtmeniz gerekir.
AndroidManifest.xml
dosyanızdaki application
beyanına aşağıdaki intent-filter
öğesini ekleyin:
<intent-filter>
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
Referans olarak örnek uygulamamızın manifest dosyasını inceleyin.
Matter cihazlarını etkinleştirmenin yolları
Devreye alma işlemi şu şekilde başlatılabilir:
Doğrudan uygulamanızdan devreye alma isteğinde bulunma
Doğrudan uygulamada etkinleştirme isteğinde bulunma işlemi, uygulamadaki bir düğmeyle tetiklenebilir ve iki şekilde yapılabilir:
Tek kumaş için
Devreye alma isteğinde bulunmak için:
Etkinliğinizde bir
ActivityResultLauncher
başlatın. Kullanıcı, cihazı Google Fabric'te devreye aldıysa sonuçta, kullanıcının cihazı devreye alırken cihaza atadığı ad yer alabilir.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 dahil olmak üzere bir
CommissioningRequest
oluşturun vesetStoreToGoogleFabric
'ı kullanarak cihazı Google fabrikasına devretme 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 devreye alma hizmetinizi
CommissioningRequest
içindesetCommissioningService
ile ayarlayın.Devreye almayı 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() = _commissioningIntentSender
CommissioningClient
, intent 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 Çalıştırma API'lerini çok yöneticili modda kullanma başlıklı makaleyi inceleyin.
Hızlı Eşleme veya QR kodu taraması için Matter devreye alma giriş noktası (yalnızca Android)
Android'de hızlı eşleme veya QR kodu ile devreye alma isteğinde bulunma işlemi iki şekilde yapılabilir:
Tek kumaşlar için
GHA'a gerek kalmadan bir uygulama için tam devreye alma özelliği sağlamak üzere ACTION_START_COMMISSIONING
intent filtresini kullanın. Google Fabric'e cihazı devreye alırken kullanıcının cihaza bir ad atamasına izin vermeniz gerekir.
Google kumaş devreye alma özelliğinin desteklendiğini belirtmek için AndroidManifest.xml
dosyanızdaki seçili etkinlik beyanına aşağıdaki intent-filter
öğesini ekleyin:
<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 APIs uygulama seçicisinde önerilen Matter uygulamaların listesine dahil etmek için kullanılır.
Uygulamanız önerilen uygulamalardan biri değilse Diğer uygulamayı seç seçeneğinde görünür.
Kullanıcı uygulamanızı seçtikten sonra uygulamanız başlatılır ve ACTION_START_COMMISSIONING
intent'iyle seçilen etkinliğe yönlendirilir.
Birden fazla kumaş için (çoklu yönetici)
FastPair akışını çok yöneticili senaryolarda da kullanabilirsiniz. Daha fazla bilgi için API'leri çok yöneticili modda kullanma başlıklı makaleyi inceleyin.
Gelen amacı işleme
Etkinliğiniz başlatıldıktan sonra mevcut ACTION_START_COMMISSIONING
intent'i kontrol etmeli ve yük verisini 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 zaten taradığını veya eşleme anahtarını girdiğini gösterir. null
yükü değeri, devreye alma işleminin iptal edilmesi gerektiği anlamına gelmez.
Satış oranına tabi keşif bildirimlerini engelleme
Android'daki Google Play services, varsayılan olarak kullanıcılara komisyonlu Matter cihazların yakınlarda olduğunu proaktif bir şekilde belirtmek için mobil cihaz ekranının alt yarısını kaplayan"yarım sayfa" bildirimleri kullanır.
Uygulamanız ön plandayken kesinti yaşanmasını önlemek için Mobile SDK içinde suppressHalfSheetNotification()
yöntemini çağırarak bu bildirimleri bastırabilirsiniz. Daha fazla bilgi için API belgelerine bakın.
Uygulamanız 15 dakikadan uzun süre ön planda kalırsa bu API tarafından etkinleştirilen engelleme zaman aşımına uğrar. Zaman aşımı süresinden sonra engellemeyi yeniden etkinleştirmek için suppressHalfSheetNotification()
'ü tekrar arayın. Aksi takdirde yarım sayfa bildirimleri gösterilmeye başlar.
Bu API'nin bir uygulamasını Google Home Sample App for Matter adresinde bulabilirsiniz. Daha fazla bilgi için HalfSheetSuppressionObserver.kt
sayfasına göz atın.
Kumaşınızdaki Matter cihazlarını Google ile nasıl paylaşmalısınız?
Google, kendi kumaşınızda ayarladığınız bir cihazı Google kumaşıyla paylaşmak için birincil aracınız olarak Komisyon API'sini kullanmanızı önemle tavsiye eder. Share API'nin sınırlamaları vardır ve diğer kullanım alanları için ayrılmalıdır.
Share API yerine neden Commissioning API'yi kullanmalısınız?
Commissioning API, bir cihazın doğrudan Google Fabric ile paylaşılmasını tetiklemenize olanak tanır. Bu yöntem, uygun olduğunda tercih edilen yöntemdir. Paylaşım API'sinde son kullanıcının daha fazla adım uygulaması gerekir. Örneğin, son kullanıcının GHA yüklü olması ve işlemin başarıyla tamamlanması için süreç sırasında GHA'yi seçmesi gerekir.
Commissioning API'yi kullanmak için İkincil Matter komisyoncusu olarak Commissioning API'yi kullanma bölümünde açıklandığı gibi, commissioning penceresini açıp Commissioning API'yi çağırmanız gerekir.
Share API'yi ne zaman kullanmalısınız?
Nihai 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.