更新日:2025-10-30
TL;DR
- 優先ネットワーク:4G(推奨)に固定、VoLTE ON → 10分計測でパケットロス 0%、平均RTT 約38ms。
-
grepは Windows PowerShell では使えないためfindstrを使用。 -
Can't find service: telephony/imsは環境や権限による表示仕様で、本件の安定化可否とは無関係。
環境
- 端末:Xperia 5 V (pdx237)
- OS:LineageOS 23
- 回線:NTT DOCOMO (LTE/NR NSA 表示あり)
- 設定:優先ネットワーク=4G(推奨)、VoLTE=ON
症状(発生時のログ兆候)
dumpsys phone に以下が頻発:
onDataConnectionStateChanged(DISCONNECTED, UNKNOWN)notifyServiceStateForSubscriber: ... OUT_OF_SERVICEfail cause: RADIO_NOT_AVAILABLE-
TelephonyDisplayInfo { network=LTE, overrideNetwork=NR_NSA }が短時間で切り替わる
→ 5G NSA⇄LTE 切替の瞬間にデータが一過性に切断される挙動。
対策(結論)
- 優先ネットワークの種類を 4G(推奨) に固定
- VoLTE を ON(4G通話を許可)
→ 以降、IN_SERVICE(LTE) が安定推移。10分健診でロス0%・遅延も平常範囲。
10分ネットワーク健診(PowerShellスクリプト)
Windows(PowerShell 7/Windows PowerShell 5 いずれも可)。
grepの代わりにfindstrを使用。ログはC:\tmp\配下に保存。
# 保存先を作成(C:\tmp\nr_yyyyMMdd_HHmmss)
$ts = Get-Date -Format 'yyyyMMdd_HHmmss'
$dir = "C:\tmp\nr_$ts"
New-Item -ItemType Directory -Path $dir -Force | Out-Null
$pingLog = Join-Path $dir "ping_$ts.log"
$radioLog = Join-Path $dir "radio_$ts.log"
"=== START $(Get-Date) ===" | Out-File $radioLog -Encoding UTF8
# (1) 10分間の ping をバックグラウンドで実行(1秒間隔×600)
Start-Job -Name PingJob -ScriptBlock { adb shell ping -c 600 -i 1 8.8.8.8 } `
| Out-Null
# (2) 毎分1回、計10回の無線状態スナップショット
1..10 | ForEach-Object {
"---- SNAPSHOT $_ @ $(Get-Date) ----" | Add-Content $radioLog
# dumpsys phone → Windows標準 findstr で欲しい行だけ抽出
adb shell dumpsys phone 2>&1 `
| findstr /i /c:"DataRegState" /c:"DISCONNECTED" /c:"OUT_OF_SERVICE" `
/c:"IN_SERVICE" /c:"fail cause" /c:" network=LTE" `
/c:"overrideNetwork=NR_NSA" /c:"isUsingCarrierAggregation" `
| Add-Content $radioLog
Start-Sleep -Seconds 60
}
# (3) ping 結果を取得して保存
Receive-Job -Name PingJob -Wait -AutoRemoveJob `
| Out-File $pingLog -Encoding UTF8
Write-Host "Saved logs to: $dir"
ログの見方(要点)
切断判定:DISCONNECTED、OUT_OF_SERVICE が連続していないか
接続状態:IN_SERVICE が継続しているか
切替兆候:overrideNetwork=NR_NSA の直後に DISCONNECTED が出ていないか
原因ヒント:fail cause: RADIO_NOT_AVAILABLE が頻出しないか
実測サマリ(例)
設定:4G固定 + VoLTE ON
10分 ping:ロス 0%、平均RTT 約38ms(最大 ≈200ms 付近を稀に観測)
dumpsys phone:IN_SERVICE(LTE) 維持、NR_NSA への一瞬の切替表示はあるが切断は再現せず
参考ログ名:net_20251030_084643.log(サンプル)
よくある質問 / ハマりポイント
Q1. grep : ~認識されません と出る
原因:Windows PowerShell には grep がありません。
対応:本文スクリプトのように findstr を使います。
Q2. Can't find service: telephony / Can't find service: ims
意味:一部の service call ... 系や権限が必要な呼び出しで出る仕様。
代替:本記事では dumpsys phone と ping のユニバーサルで安全な組み合わせで判定しています。
Q3. それでも切断が出る
確認:
APNの type に default,supl(必要なら ims)が含まれているか
手動ネットワーク選択になっていないか(自動に戻す)
端末再起動/SIM再挿入/別エリアでの再検証
免責
本記事の内容は自己責任でお試しください。端末個体差・エリア・ROM/カーネル構成により結果は異なります。業務端末等では管理者ポリシーに従ってください。
付録:ワンライナー(現状把握)
# いまの無線状態をざっと確認
adb shell dumpsys phone | findstr /i /c:"DataRegState" /c:"IN_SERVICE" `
/c:"OUT_OF_SERVICE" /c:"DISCONNECTED" /c:"fail cause" `
/c:" network=LTE" /c:"overrideNetwork=NR_NSA"