Androidで、どの5Gが掴めているか確認します。
条件
1. Android11 (OS)
2. 5G対応デバイス (端末)
3. SIMカード (通信)
手元にある Pixel5 (Android11) + docomo ahamo SIM で挑みます。
5G を検出する
TelephonyManager.listen() を呼び出して LISTEN_DISPLAY_INFO_CHANGED を渡し、ユーザーが 5G ネットワークに接続しているかどうか判断します。onDisplayInfoChanged() メソッドをオーバーライドして、アプリが接続されているネットワークの種類を判断します。
LISTEN_DISPLAY_INFO_CHANGEDからPhoneStateListenerイベントをPhoneStateListenerし、 onDisplayInfoChanged()メソッドをオーバーライドすることにより、5G検出をサポートします。
👉 アプリに 5G 機能を追加する | Android デベロッパー
ここらは、callbackFlow を使うと掴んでいるネットワークの種類が変化するたびにUIを変化させることができますね!
ここで気になっていたのが、すでに一部キャリアから公開が始まってる NR_SA (5G スタンドアロン) の戻り値が掲載されてないことでした。
ちなみに、USモデルでは以下のような記事で、直近のパッチで対応など書かれてる。
👉 Pixel 5 and 4a 5G don't support 5G SA right now, but they will next year
👉 Pixel 5, 4a 5G adds Standalone (SA) on T-Mobile, Google Fi - 9to5Google
接続タイプを特定する
次の値を使用して、5GのNSA(非スタンドアロン)、mmWave(ミリ波)、およびSA(スタンドアロン)接続タイプを区別します。
👉 5Gテスト | Android オープンソース プロジェクト
どうやら NR_SA (5G スタンドアロン) は、2つのクラスから取得できる3つの値の組み合わせで判定できるようです。
結果
確認しやすいように基準となる値の3つを並べて表示するようにしておいて、いざ5Gエリアへ。
[設定]
|
[デバイス情報]
|
[SIMのステータス]
私は、5Gは、
「NR_NSA (5G非スタンドアロン)」
しか掴んだことがありません!
「NR_SA (5Gスタンドアロン)」は
どこに行けばつかめるのでしょうか、
いや、今は待つしかないのでしょうか?
👉 Pixel5 で ahamo を使いながら書くページ
👉 Pixel5 / Pixel4a (5G) で「ミリ波」は使えたのか。【ahamo】
👉 なぜ ahamo は 5Gエリアで4G通信に切り替わるのか。
👉 ドコモ 5G 通信速度 どれぐらい?
👉 Test 5G - Google Play のアプリ