Android携帯電話とトップボックス、現在のネットワーク接続方式を判断
2350 ワード
Android携帯電話のネットワーク接続方式は一般的に2つあることを知っています.Wifi接続とキャリアデータ接続です.同時に、Androidトップボックスのネットワーク接続方式にも2つあります.wifi接続と有線接続です.
携帯電話アプリでもトップボックスアプリでも、開発過程で現在のネットワーク接続方式を判断し、ユーザーに異なる選択を与えたり、異なる再生シーンをもたらしたりする必要があることがよく使われています.
次に、携帯電話とトップボックスが現在のネットワーク接続方式を取得する方法をそれぞれ見てみましょう.
まず、AndroidシステムにはConnectivityManagerクラスがあり、ネットワーク接続後、NetworkInfoクラスを作成し、現在のネットワーク接続の情報をこのクラスに格納します.携帯電話でもトップボックスでも、ConnectivityManagerで現在のNetworkInfo類を取得し、ネットワークがスムーズかどうか、ネットワークの情報などを判断します.
権限が必要
二Android携帯電話は、wifi接続かデータ接続かを判断します.
三A ndroidセットトップボックス、wifi接続か有線接続かを判断
携帯電話アプリでもトップボックスアプリでも、開発過程で現在のネットワーク接続方式を判断し、ユーザーに異なる選択を与えたり、異なる再生シーンをもたらしたりする必要があることがよく使われています.
次に、携帯電話とトップボックスが現在のネットワーク接続方式を取得する方法をそれぞれ見てみましょう.
まず、AndroidシステムにはConnectivityManagerクラスがあり、ネットワーク接続後、NetworkInfoクラスを作成し、現在のネットワーク接続の情報をこのクラスに格納します.携帯電話でもトップボックスでも、ConnectivityManagerで現在のNetworkInfo類を取得し、ネットワークがスムーズかどうか、ネットワークの情報などを判断します.
権限が必要
二Android携帯電話は、wifi接続かデータ接続かを判断します.
ConnectivityManager mConnectivity = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mTelephony = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
//
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
if (info == null || !mConnectivity.getBackgroundDataSetting()) {
return false;
}
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) { //WIFI
return info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS && !mTelephony.isNetworkRoaming()) { //MOBILE
return info.isConnected();
} else {
return false;
}
三A ndroidセットトップボックス、wifi接続か有線接続かを判断
/**
*
*
*
* 0:
* 1:
* 2:
*
* @return
*/
private int getNetMode() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if (info == null) {
return 0;
}
boolean iscon = info.isAvailable();
Log.e(TAG, " =" + iscon + ", :" + info.getType() + " ," + info.getTypeName());
if (!iscon) {
return 0;
}
if (info.getType() == ConnectivityManager.TYPE_ETHERNET) {
return 1;
} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
return 2;
} else {
return 0;
}
}