Android携帯電話とトップボックス、現在のネットワーク接続方式を判断

2350 ワード

Android携帯電話のネットワーク接続方式は一般的に2つあることを知っています.Wifi接続とキャリアデータ接続です.同時に、Androidトップボックスのネットワーク接続方式にも2つあります.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;
        }
    }