Commissioning API מאפשר לאפליקציה להעביר עמלות ל-:
- הבד שלכם והבד של Google.
- רק את הבד של Google.
סימון תמיכה בהפעלת Matter
אם אתם משתמשים ב-Google Home Mobile SDK כדי לקבל עמלות, עליכם להוסיף את שם חבילת האפליקציה ב-Google Home Developer Console, להטמיע את ממשקי ה-API של Matter ולציין שהאפליקציה תומכת בקבלת עמלות Matter על ידי טיפול בכוונה ACTION_COMMISSION_DEVICE
.
מוסיפים את intent-filter
הבא להצהרה application
בקובץ AndroidManifest.xml
:
<intent-filter>
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
לקבלת עזרה, אפשר לעיין במניפסט לדוגמה של אפליקציה.
דרכים לקבלת עמלות על מכשירים בתקן Matter
אפשר להתחיל את תהליך ההפעלה:
שליחת בקשה להפעלה ישירות באפליקציה
אפשר לבקש אישור להפעלת מודעות ישירות באפליקציה באמצעות לחצן באפליקציה. יש שתי דרכים לבקש אישור:
לבדים בודדים
כדי לבקש הפעלה:
מאתחלים את
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
, כולל נתוני עומס העבודה (payload) שהתקבלו, ומגדירים את האפשרות להקצות את המכשיר ל-Google Fabric באמצעותsetStoreToGoogleFabric
:val commissioningRequest = CommissioningRequest.builder() .setOnboardingPayload(payload) .setStoreToGoogleFabric(true) // set all other options that you care about .build()
אם רוצים להקצות את המכשיר ל-Google Fabric וגם ל-fabric משלכם, צריך להגדיר את שירות ההקצאה באמצעות
setCommissioningService
ב-CommissioningRequest
.משתמשים במכונה
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 במכשיר, תוכלו לעיין במאמר איך משתמשים ב-API להקצאת תפקידים במצב של אדמינים מרובים.
נקודת כניסה להפעלת Matter לצורך התאמה מהירה או סריקה של קוד QR (ב-Android בלבד)
יש שתי דרכים לבקש הזמנת התקנה באמצעות התאמה מהירה או קוד QR ב-Android:
לבדים בודדים
אפשר להשתמש במסנן הכוונה ACTION_START_COMMISSIONING
כדי לספק יכולת ניהול מלאה של אפליקציה בלי להשתמש ב-GHA. כשמפעילים את Google Fabric, המשתמש יכול להקצות שם למכשיר.
כדי לציין תמיכה בהפעלת Google Fabric, מוסיפים את הערך intent-filter
להצהרת הפעילות שנבחרה בקובץ 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
משמש כדי לכלול את האפליקציה שלכם ברשימת האפליקציות המוצעות Matter בבורר האפליקציות של ממשקי ה-API ליצירת שותפים.
אם האפליקציה שלכם לא מופיעה באחת מההצעות, היא תופיע באפשרות בחירת אפליקציה אחרת.
אחרי שהמשתמש בוחר באפליקציה, היא מופעלת ומופנית לפעילות שנבחרה באמצעות ACTION_START_COMMISSIONING
.
למספר סביבות (לניהול על ידי כמה אדמינים)
אפשר גם להשתמש בתהליך FastPair בתרחישים עם כמה אדמינים. מידע נוסף זמין במאמר איך משתמשים ב-API להקצאת תפקידים במצב של אדמינים מרובים.
טיפול בכוונה הנכנסת
אחרי שהפעילות מופעלת, היא אמורה לבדוק את הכוונה הקיימת 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
, סימן שהמשתמש כבר סרקה את קוד ה-QR של המכשיר או הזין את מפתח ההתאמה. ערך של null
בתוכן המועמס לא אומר שצריך לבטל את ההפעלה.
השבתת התראות על מוצרים שאפשר להרוויח עליהן עמלות
כברירת מחדל, Google Play services ב-Android משתמש בהתראות 'חצי דף' שמכסות את החלק התחתון של המסך בנייד, כדי לספק למשתמשים אינדיקציה יזומה לכך שמכשירי Matter שאפשר לקבל עליהם עמלות נמצאים בקרבת מקום.
כדי למנוע הפרעות בזמן שהאפליקציה בחזית, אפשר לדכא את ההתראות האלה על ידי קריאה ל-method suppressHalfSheetNotification()
ב-Mobile SDK. מידע נוסף זמין במסמכי העזרה של ה-API.
אם האפליקציה שלכם נמצאת בחזית למשך יותר מ-15 דקות, יפוג הזמן הקצוב להפעלת ההשבתה שמופעלת על ידי ה-API הזה. כדי להפעיל מחדש את ההשתקה אחרי זמן קצוב, צריך להפעיל שוב את הפונקציה suppressHalfSheetNotification()
. אחרת, התראות בגודל חצי מסך יתחילו להופיע.
הטמעה של ה-API הזה מופיעה ב-Google Home Sample App for Matter. מידע נוסף זמין במאמר HalfSheetSuppressionObserver.kt
.
איך משתפים עם Google מכשירי Matter ברשת הבית החכמה?
Google ממליצה מאוד להשתמש ב-Commissioning API בתור הדרך הראשית לשיתוף מכשיר שכבר הגדרתם ב-fabric שלכם עם fabric של Google. ל-Share API יש מגבלות, וצריך להשתמש בו רק בתרחישי שימוש אחרים.
למה כדאי להשתמש ב-Commissioning API במקום ב-Share API?
Commissioning API מאפשר להפעיל שיתוף של מכשיר ישירות עם Google Fabric, שהיא השיטה המועדפת כשהיא אפשרית. כשמשתמשים ב-Share API, משתמש הקצה צריך לבצע יותר שלבים. לדוגמה, משתמש הקצה צריך להתקין את GHA, וחשוב שהוא ידע לבחור ב-GHA במהלך התהליך כדי להבטיח שהפעולה תתבצע בהצלחה.
כדי להשתמש ב-Commissioning API, צריך לפתוח את חלון ההזמנה ולקרוא ל-Commissioning API, כפי שמתואר במאמר איך משתמשים ב-Commissioning API בתור גורם מזמין משני ב-Matter.
מתי כדאי להשתמש ב-Share API?
אתם יכולים להשתמש ב-Share API כדי לאפשר למשתמש הקצה לבחור אפליקציה מתאימה לשיתוף מכשיר באופן כללי עם סביבות קיימות אחרות של Matter.