Android: 3Gが有効になっているかを取得

これもまた調べ物の一環で。

3Gが有効かどうかを調べる方法をば。
if文のConnetivityManager.TYPE_MOBILEの場合が3Gです。
比較用にWiFiも条件に入れています。

あ、実行環境は私が所有するSoftbank X06HT(Desire) 2.2(Froyo)です。

// 3Gの状態を取得する
ConnectivityManager cm = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
// ネットワーク情報を全て取得
NetworkInfo[] networkInfos = cm.getAllNetworkInfo();
for(NetworkInfo ni: networkInfos) {
	if (ni.getType() == ConnectivityManager.TYPE_WIFI
		 || ni.getType() == ConnectivityManager.TYPE_MOBILE) {
		// 3GかWiFiの場合は情報を取得
		Log.d(TAG, "TypeName = " + ni.getTypeName());
		Log.d(TAG, "SubtypeName = " + ni.getSubtypeName());
		Log.d(TAG, "isAvailable = " + ni.isAvailable());
		Log.d(TAG, "connected = " + ni.isConnected());
	}
}
  1. モバイルネットワークOFF, WiFi OFFの場合:

    11-12 01:15:26.651: DEBUG/Top(8401): TypeName = mobile
    11-12 01:15:26.651: DEBUG/Top(8401): SubtypeName = UMTS
    11-12 01:15:26.651: DEBUG/Top(8401): isAvailable = true
    11-12 01:15:26.651: DEBUG/Top(8401): connected = false
    11-12 01:15:26.651: DEBUG/Top(8401): TypeName = WIFI
    11-12 01:15:26.651: DEBUG/Top(8401): SubtypeName =
    11-12 01:15:26.651: DEBUG/Top(8401): isAvailable = false
    11-12 01:15:26.651: DEBUG/Top(8401): connected = false

  2. モバイルネットワークOFF, WiFi ONの場合:

    11-12 01:19:07.901: DEBUG/Top(8401): TypeName = mobile
    11-12 01:19:07.901: DEBUG/Top(8401): SubtypeName = UMTS
    11-12 01:19:07.901: DEBUG/Top(8401): isAvailable = true
    11-12 01:19:07.901: DEBUG/Top(8401): connected = false
    11-12 01:19:07.901: DEBUG/Top(8401): TypeName = WIFI
    11-12 01:19:07.901: DEBUG/Top(8401): SubtypeName =
    11-12 01:19:07.901: DEBUG/Top(8401): isAvailable = true
    11-12 01:19:07.901: DEBUG/Top(8401): connected = true

  3. モバイルネットワークON, WiFi OFFの場合:

    11-12 01:16:53.891: DEBUG/Top(8401): TypeName = mobile
    11-12 01:16:53.891: DEBUG/Top(8401): SubtypeName = UMTS
    11-12 01:16:53.891: DEBUG/Top(8401): isAvailable = true
    11-12 01:16:53.891: DEBUG/Top(8401): connected = true
    11-12 01:16:53.891: DEBUG/Top(8401): TypeName = WIFI
    11-12 01:16:53.891: DEBUG/Top(8401): SubtypeName =
    11-12 01:16:53.891: DEBUG/Top(8401): isAvailable = false
    11-12 01:16:53.891: DEBUG/Top(8401): connected = false

  4. モバイルネットワークON, WiFi ONの場合:

    11-12 01:18:09.711: DEBUG/Top(8401): TypeName = mobile
    11-12 01:18:09.711: DEBUG/Top(8401): SubtypeName = UMTS
    11-12 01:18:09.711: DEBUG/Top(8401): isAvailable = true
    11-12 01:18:09.711: DEBUG/Top(8401): connected = false
    11-12 01:18:09.711: DEBUG/Top(8401): TypeName = WIFI
    11-12 01:18:09.711: DEBUG/Top(8401): SubtypeName =
    11-12 01:18:09.711: DEBUG/Top(8401): isAvailable = true
    11-12 01:18:09.711: DEBUG/Top(8401): connected = true

という結果でした。モバイルネットワークはOFFにしても、isAvailableはtrueのままだけど、WiFiはOFFにしたらisAvailableがfalseになるんすねー。接続だけはさせないよってことだろうか?

あとWiFiをONの状態でWiFiの電波のないところで試したいような気がしたけれど、まぁ3Gで接続するだけだろうからなぁ。


タグ Android | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です