Package com.codename1.home.commissioning
Adding a new Matter accessory to the user's home.
Start from
SmartHome.getCommissioner(), which never returns
null and answers
Commissioner.isSupported() false
where there is nothing behind it.
Its own package on purpose
The build server decides what native machinery an app gets by scanning its
bytecode for package prefixes, and commissioning is much more expensive
than the rest of this API: on iOS it needs the MatterSupport framework,
a com.apple.developer.matter.allow-setup-payload entitlement, an app
group and a whole generated app-extension target, and on Android it adds
the Play services home dependency and Bluetooth and local-network
permissions.
An app that reads its lights and never adds an accessory should get none of
that. Because the scanner matches on a package prefix and has no way to
express an exclusion, the only way to make that separation possible is for
the package boundary to be the permission boundary -- so commissioning
lives here rather than next to SmartHome.
What commissioning does not promise
Adding an accessory puts it in the user's ecosystem. Whether your app can
then control it is a different question, and on Android with Play
services alone the answer is no. Check
CommissioningResult.wasCommissionedToThisApp()
rather than assuming the returned accessory id is usable.
-
ClassDescriptionAdds a new Matter accessory to the user's home.What to add, and where the user would like it to land.What came of a commissioning attempt.How a backend adds a new accessory, so an app can word its own button honestly.A Matter onboarding payload: the
MT:string behind the QR code on an accessory, or the 11 or 21 digit code printed under it.