Nature で iOS/Android あと Firmware チョットデキル亀田 @Gemmbu です。
これは 第2回Nature Engineering Blog祭 の二日目の記事です。
ちなみに第1回ではPlaydate の開発を通じて開発環境を自ら拡張するというPlaydateを使ってごにょごにょしたあとemacsに旅立つ話を書きました。先日Playdate SDK 2.0.0が公開されたのですがネットワークAPIは公開されずemacsの旅からまだ帰れていません。今回はemacs出てこない予定ですので安心してください。
Matterを検出ってどういうこと?
AndroidエンジニアでMatterデバイスを開発している方はまだまだ少ないと思いますが、実はAndroidは近くに未セットアップのMatterデバイス*1があると検出しちゃうんです。その様子がこちら
Nature Remo nanoの電源を入れるとその後Androidがデバイスのセットアップ
モーダルを表示しています。このモーダルの厄介なところはMatterのアドバタイズを検出すると出てしまうということです。つまりMatterデバイス側の調整でこのモーダル非表示にすることができません。そのため、開発中は自分を含め周りのAndroid端末にスパムのように表示させてしまっていました。
モーダルを表示させなくすることはできるの?
先程書いた通りNature Remo nanoのようなMatterデバイス側の調整ではこのモーダルを非表示にすることはできません。しかしながらアプリにモーダルを非表示するための処理を記述することはできます。実際にNature Remoアプリに実装した様子がこちら
最初ホーム画面を表示している場合は先程と同様に検出しますが、次にNature Remoアプリに切り替えると表示されません。なんと、このモーダルを非表示する処理はアプリ毎に実装する必要があるのです。動画を視聴しているとき、経路案内に従って進んでいるときでさえMatterのアドバタイズを検出すると表示されてしまいます。Matterに詳しいユーザには理解されるかもしれませんが、それでもユーザがなにかしている最中に突然表示されてしまうと体験を損ねてしまうでしょう。
どうやってモーダルを表示させなくするの?
以下の suppressHalfSheetNotification
をonStart()
で呼び出すだけです
Disables proactive commissionable discovery notifications for Matter devices. If your application provides its own Matter discovery or commissioning flow, you may wish to suppress these notifications to prevent interruptions.
ドキュメントにはアプリケーションが独自のデバイス検出及びセットアップを持っている場合にとなっているためみなさんのAndroidアプリにも実装するように強くおすすめし辛いのですが、今のモーダルが改善されるまでは一時的に実装しておくのがいいのではと個人的には思っています。
公式サンプルコードはこちらです github.com
更にAPIドキュメントにも公式サンプルコードにも書かれていない重要な情報が
The suppression enabled by this API times out if your app is in the foreground for more than 15 minutes. To re-enable suppression after a timeout, call suppressHalfSheetNotification() again, otherwise halfsheet notifications will start to appear.
まとめ
Androidが勝手Matterを検出しちゃうこととその対処方法についてまとめました。Matterには関係無いと思っていてもそうはさせてくれないAndroidですが動向を見守りつつ一時的に実装するとみんな幸せになるんじゃないかなと思っています。また、手元にMatterデバイスが無いからちゃんと実装できたか確認できないよ!!って方はちょうどMatter 対応の Nature Remo nano が定価3,980円で発売中!なのでこの機会に手に入れることをおすすめします。
明日三日目はファームウェア開発の@cinimlさんです!ご期待ください!
Nature エンジニアコミュニティ
Matter や、Nature Remo シリーズのお話をみなさまと楽しむために、開発者コミュニティもはじめました!Nature Remo Could API の疑問から雑談まで、Nature のエンジニアとお話ししましょう!Discord への参加はこちらから。開発者コミュニティへのご参加もお待ちしております!
Nature Remo nano 好評発売中!
Matter 対応の Nature Remo nano が定価3,980円で発売中!