カテゴリー別アーカイブ: android

androidのConnectivityManagerで接続情報の確認

雪の日に洗濯物を凍らせそうになったしょうたんです、こんばんわ。
雪の日が続きますね、今日は晴れてるけどまた今週中頃に降るらしいです。
今日はandroidの通信接続チェックです。情報があまり見当たらないので、ConnectivityManager の接続情報のTYPEを覚書として記載してみました。
例えば”TYPE_WIFI”, “TYPE_MOBILE” だけのチェックだと”TYPE_WIMAX”のチェックが足りないので、WiMAXで接続している端末は情報が取れません。

    	// システムから接続情報を取得
    	ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    	NetworkInfo info = conMan.getActiveNetworkInfo();
    	if (info != null){
    		if (info.isConnected()){
    			switch (info.getType()){
    				case ConnectivityManager.TYPE_WIFI: // Wifi
    					return true;
    				case ConnectivityManager.TYPE_MOBILE_DUN: // Mobile 3G
    					return true;
    				case ConnectivityManager.TYPE_MOBILE_HIPRI:
    					return true;
    				case ConnectivityManager.TYPE_MOBILE_MMS:
    					return true;
    				case ConnectivityManager.TYPE_MOBILE_SUPL:
    					return true;
    				case ConnectivityManager.TYPE_MOBILE:
    					return true;
    				case ConnectivityManager.TYPE_BLUETOOTH: // Bluetooth
    					return true;
    				case ConnectivityManager.TYPE_ETHERNET:  // Ethernet
    					return true;
    				case ConnectivityManager.TYPE_WIMAX:
    					return true;
    			}
    		}
    	}

また、TYPE_MOBILE_***については状況に応じて使う必要がありそうです。

TYPE_MOBILE_DUN:DUN-特定のモバイルデータ接続。このネットワークタイプはTYPE_MOBILEと同じネットワーク?インターフェースを使用してもよいし、異なるものを使用することができる。キャリアはDUNトラフィックが認識されるようにテザリングするためのアップストリーム接続を設定するときに使用する。

TYPE_MOBILE_HIPRI:優先度の高いモバイルデータ接続。このネットワークタイプはTYPE_MOBILEと同じネットワーク?インタフェースを使用するが、ルーティングの設定が異なる。唯一要求しているプロセスは、モバイルのDNSサーバへのアクセス権を持っているとする唯一のIPの明示requestRouteToHostで要求をルーティングデフォルトルートが存在しない場合は、このインタフェースを介して行う。

TYPE_MOBILE_MMS:MMS固有のモバイルデータ接続。このネットワークタイプはTYPE_MOBILEと同じネットワーク?インターフェースを使用してもよいし、異なるものを使用することができる。これは、通信事業者のマルチメディア?メッセージング?サービス?サーバと通信するために必要とするアプリケーションで使用される。

TYPE_MOBILE_SUPL:SUPL固有のモバイルデータ接続。このネットワークタイプはTYPE_MOBILEと同じネットワーク?インターフェースを使用してもよいし、異なるものを使用することができる。これは、デバイスの位置を特定のヘルプは、キャリアのセキュア?ユーザ?プレーン?ロケーション?サーバと通信するために必要とするアプリケーションで使用される。

参考:http://developer.android.com/reference/android/net/ConnectivityManager.html