Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[potatotips #69] Wi-Fi Suggestion API / Wi-Fi Suggestion API
Search
syarihu
April 27, 2020
Technology
2
1.9k
[potatotips #69] Wi-Fi Suggestion API / Wi-Fi Suggestion API
potatotips #69で発表したWi-Fi Suggestion APIの発表資料です。
https://potatotips.connpass.com/event/171532/
syarihu
April 27, 2020
Tweet
Share
More Decks by syarihu
See All by syarihu
[shibuya.apk #41] Jetpack Composeでグリッドに柔軟にスペースを入れたい
syarihu
0
2.2k
[DroidKaigi 2022] 詳解Google Playの新しい定期購入 ~オファーの活用や実装例を添えて~
syarihu
0
3k
5分で分かるGoogle Playの新しいサブスクリプション / Google Play new subscription 2022
syarihu
1
1.6k
[DroidKaigi 2021] Google Play 定期購入 比例配分モード完全攻略ガイド / Google Play Subscription Proration Mode Complete Guide
syarihu
1
7.1k
[Money Forward Tech Drive] What's new in Google Play [Recap #io21]
syarihu
0
500
[Android 11 Meetups] Google Play Commerce からのアップデート / Android 11 Meetups Google Play Commerce
syarihu
4
2.7k
[potatotips #70] license-list-pluginを使ってOSSライセンス画面を自動生成する / license-list-plugin
syarihu
4
4.3k
[DroidKaigi 2020] Re:ゼロから始める Play Billing Library / Re: Zero - starting uses of Play Billing Library
syarihu
0
11k
入社から約2年、 Money ForwardのAndroidエンジニアとしての活動を振り返る / Looking back of two years as an Android Engineer of Money Forward
syarihu
1
1.9k
Other Decks in Technology
See All in Technology
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
270
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
270
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
Azure AI ことはじめ
tsubakimoto_s
0
130
Scaling Technical Excellence at 104: Evolution in AWS and Developer Empowerment
scotthsieh825
1
150
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
150
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
Featured
See All Featured
Designing for humans not robots
tammielis
247
25k
How to name files
jennybc
67
96k
Thoughts on Productivity
jonyablonski
64
4.1k
Web development in the modern age
philhawksworth
203
10k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Done Done
chrislema
179
15k
What the flash - Photography Introduction
edds
65
11k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Leading Effective Engineering Teams 2024
addyosmani
3
300
The Pragmatic Product Professional
lauravandoore
29
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
Transcript
Wi-Fi Suggestion API 2020/04/27 (Mon) potatotips #69 @syarihu
Taichi Sato (@syarihu) • Money Forward, Inc. ◦ Android Engineer
• TechBooster
Android 10以前のWi-Fi関連API
• Androidでは、API Level 1からWi-Fi情報を追 加するAPIを用意している • イベント専用のアプリや実店舗などで使えるア プリでユーザーがWi-Fi情報を入力することなく イベント会場や店舗のWi-Fiに自動で接続でき る
Android 10以前のWi-Fi関連API
None
None
• Wi-FiがONで対象のSSIDが接続範囲内にい れば、保存されたWi-Fi情報を元に自動でWi-Fi に接続 • アプリを削除した場合はアプリから追加した Wi-Fi情報も同時に削除される Android 10以前のWi-Fi関連API
• Android 10以前で使えていた機能を提供する Wi-Fi関連APIは非推奨になった上に無効化さ れた Android 10以前のWi-Fi関連API
https://developer.android.com/reference/android/net/wifi/WifiManager#addNetwork(android.net.wifi.WifiConfiguration)
https://developer.android.com/reference/android/net/wifi/WifiManager#addNetwork(android.net.wifi.WifiConfiguration)
• プリインストールアプリなどを除いて minSdkVersion 29以上は2020年現在ではあり えない • Android 10以上では新しいAPIを使い、Android 10未満では以前のAPIを使って下位バージョンで も正しく動作させる必要がある
Android 10以前のWi-Fi関連API
Wi-Fi Suggestion API
• 接続先候補としてWi-Fi情報をシステムに追加 し、ユーザーにWi-Fiへの接続を提案するAPI • ネットワークの種類はオープン、WPA2、WPA3 のいずれかの認証情報を提供できる Wi-Fi Suggestion API
None
• サイレント通知であるため通知音は鳴らない • 通知の「はい」ボタンを押すと自動接続が許可さ れ、Wi-Fiが接続範囲内に入ったときに自動的に 接続される Wi-Fi Suggestion API
None
単なる接続確認ではない Wi-Fi接続のおすすめ通知
None
• 「いいえ」を押すと、アプリのもつWi-Fiの管理権 限が無効になり、Wi-Fi情報も削除される • Wi-Fiの管理権限が無効になると、アプリから変 更ができなくなるため、再度Wi-Fi情報を追加す ることができない 「いいえ」を押したときの挙動
• ユーザーが明示的に権限を許可するまでこの状 態は変わらない 「いいえ」を押したときの挙動
None
None
• 「いいえ」を押してもWi-Fiの管理の権限が無効 になったことは一切通知されない • 権限を許可する画面は階層の深いところにある ため、一度「いいえ」を選択してしまうとアプリか らWi-Fi接続をすることは難しい 「いいえ」を押したときの挙動
• Wi-Fi情報を追加するタイミングで案内メッセージ を表示するなど丁寧なコミュニケーションを取る 必要がある 「いいえ」を押したときの挙動
• Wi-Fi接続のおすすめ通知で「いいえ」を押した 時点で追加したWi-Fi情報も自動的に削除される • 再度自動接続させる場合、アプリからWi-Fi情報 を追加し、Wi-Fi接続のおすすめ通知で「はい」を 押さなければならない 「いいえ」を押したときの挙動
• 「はい」を押すと、アプリからのWi-Fi接続を許可 される • Wi-Fi Suggestion APIには現在接続されている Wi-Fiを強制切断して接続を切り替えるといった オプションはない 「はい」を押したときの挙動
• アプリから追加した接続先候補以外のWi-Fiに繋 がっている場合には「はい」を押しても接続が許 可されるだけで、アプリからWi-Fi接続を行うわけ ではない 「はい」を押したときの挙動
Wi-Fi接続のおすすめ通知の メッセージ修正
• Wi-Fi接続のおすすめ通知は単なる接続確認で はなく権限確認であることが分かったが、かなり ややこしい • Googleも接続確認のメッセージではよくないと 気づいたのか、android-10.0.0_r18から権限確 認だと分かるメッセージに変更された おすすめ通知のメッセージ修正
None
• メッセージの修正コミット自体は2019年8月に行 われてる • Pixel 2やPixel 3のアップデートとしてこの変更が 実際に適用されたのは2019年12月5日のアップ デートから おすすめ通知のメッセージ修正
• 同じAndroid 10でもどの時期のアップデートを適 用しているかによってメッセージが変わってきて しまう • 提供しているメーカーによっては今回の変更が 適用されていない可能性もある おすすめ通知のメッセージ修正
• Wi-Fi Suggestion APIを利用した機能を提供す る場合はアップデートバージョンを気にしておくと よい おすすめ通知のメッセージ修正
接続するまで何が追加されたか 分からないWi-Fi情報
• Android 10以前で利用できる WiFiManager#addNetworkメソッドでは追加内 容を保存済のネットワークとして確認できた 何が追加されたか分からないWi-Fi情報
None
• Wi-Fi Suggestion APIでの候補は対象のWi-Fi を検出するまでシステムのWi-Fi設定画面には 表示されない • どのSSIDに接続可能になるかはアプリ上のど こかで明記しておくとよい 何が追加されたか分からないWi-Fi情報
どこからも見えない 謎のブラックリスト
None
• 接続の解除は通常のWi-Fiと同じ用に動作する が、その後の挙動はおかしいことになる • ユーザーがアプリから追加されたWi-Fiを明示 的に接続解除してしまうと、接続を解除した SSIDはシステム内のブラックリストに入る どこからも見えない謎のブラックリスト
• ブラックリストに入れられたSSIDは、接続解除 されてから24時間は一切自動接続できなくなる • Wi-Fi Suggestionの候補からは削除されてい ないが、一度削除して再度追加を行ったとして も一切自動接続できない どこからも見えない謎のブラックリスト
• 現状、ブラックリストに入ってしまったSSIDはど こからも確認できない • アプリ上から何らかのメッセージを表示すること も不可能 どこからも見えない謎のブラックリスト
• システムの設定から解除するのではなくアプリ 上からWi-Fi Suggestion APIを使ってWi-Fi情 報を削除すると接続も解除される • 解除について注意事項を書いたり、接続を解 除する場合はアプリから接続の解除を促す警 告を出すなどするとよい
どこからも見えない謎のブラックリスト
アプリアンインストール時の挙動
• Wi-Fi Suggestion APIで追加されたWi-Fi情報 はアンインストール時に同時に削除される • どのSSIDが追加されているかはユーザーは分 からないため不安かもしれないので、アンイン ストール時に同時に削除されることは覚えてお くとよい
アプリアンインストール時の挙動
Android 11以降の Wi-Fi Suggestion APIについて
None
• 追加時のダイアログ以外にも大きな変更がいく つか入っている模様 • また機会があればお話します Android 11以降のWi-Fi Suggestion API
まとめ
• Wi-Fi Suggestion APIはシンプルな機能に見え て気をつけなければならない点が多い • 同じAndroid 10でもバージョンによって違いが あったりする •
Android 11以降でも大きな変更が入るので、注 意して見ておく必要がある まとめ
• 今回話せなかった以前のWi-Fi関連APIについ ての実装を含めた話や、Wi-Fi Suggestion API の実装の話についてもっと知りたい方は… おわりに
みんな気になる Android開発の最新事情 • in-app updates: アプリを使いながら アップデートしよう • 忙しい人のためのAAC最新事情 •
あなたとWi-Fi、今すぐサジェスト • Jetnewsで使われている Composableをざっと見る • Jetpack Composeのグランドデザイ ンを読み解く • 君も幸せになれるSpreadSheet使い こなし術 • First step of LiveData(改訂版) • ViewModelを理解する https://techbooster.booth.pm/items/1743311
ありがとうございました