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 S...
Search
syarihu
April 27, 2020
Technology
2.4k
2
Share
[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
More Decks by syarihu
See All by syarihu
Recap #io25 What's new in Google Play
syarihu
0
120
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
4
5k
[shibuya.apk #46] Composableの枠を超えてアニメーションする / Animation beyond Composable
syarihu
0
110
[shibuya.apk #41] Jetpack Composeでグリッドに柔軟にスペースを入れたい
syarihu
0
3.6k
[DroidKaigi 2022] 詳解Google Playの新しい定期購入 ~オファーの活用や実装例を添えて~
syarihu
0
3.9k
5分で分かるGoogle Playの新しいサブスクリプション / Google Play new subscription 2022
syarihu
1
2k
[DroidKaigi 2021] Google Play 定期購入 比例配分モード完全攻略ガイド / Google Play Subscription Proration Mode Complete Guide
syarihu
1
8.1k
[Money Forward Tech Drive] What's new in Google Play [Recap #io21]
syarihu
0
630
[Android 11 Meetups] Google Play Commerce からのアップデート / Android 11 Meetups Google Play Commerce
syarihu
4
3.1k
Other Decks in Technology
See All in Technology
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
3
920
The 7 pitfalls of AI
ufried
0
200
AI駆動開発で生産性を追いかけたら、行き着いたのは品質とシフトレフトだった
littlehands
0
450
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
230
小さいVue.jsを30分で作る
hal_spidernight
0
140
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
170
エンタープライズの厳格な制約を開発者に意識させない:クラウドネイティブ開発基盤設計/cloudnative-kaigi-golden-path
mhrtech
0
360
新卒エンジニア研修、ハンズオンの設計における課題と実践知/ #tachikawaany
nishiuma
2
130
Anthropic「Long-running a gents」をGeminiで再現してみた
tkikuchi
0
790
Modernizing Your HCL Connections Experience: Visual Report to chain, Profile Enhancements, and AI Integration
wannesrams
0
290
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Claude Code のすすめ
schroneko
67
220k
Scaling GitHub
holman
464
140k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
120
Making Projects Easy
brettharned
120
6.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Between Models and Reality
mayunak
3
280
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
170
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
ありがとうございました