ConnectivityManagerのgetActiveNetworkInfo()を使えば良いようです。
ネットワークに繋がっていないときはnullが返りました。
返却されたNetworkInfoのgetType()で接続ネットワークが分かります。
種類はConnectivityManagerにTYPE_XXXとして定義されています。
ISW12HTで試したときは以下のようになりました。
・3G → TYPE_MOBILE
・Wi-Fi → TYPE_WIFI
・WiMAX → TYPE_WIMAX
・機内モード → (null)
ただ、LTEの端末で試してもTypeは変わらず。
・LTE → TYPE_MOBILE
判別には使えないのかとも思いましたが、NetworkInfoにはgetSubtype()というメソッドもありました。
LTE端末で返却される値は13。
合っているかどうかはわかりませんが、おそらくこの値は TelephonyManager#NETWORK_TYPE_LTE だと思います。
サンプル・コードはこちら↓
https://www.box.com/s/bil4ig0a284vhl5dw1oy
タグ:android