Android手机和机顶盒,判断当前网络连接方式

我们知道,Android手机的网络连接方式一般有两种:Wifi连接 和 运营商数据连接;
同时一样,Android机顶盒中网络连接方式也有两种:wifi连接 和 有线连接;

无论是作手机app还是机顶盒APP,我们在开发过程中都会经常用到需要判断当前的网络连接方式,从而给用户不同的选择或者造成不同的播放场景;

下面我们就分别看一下手机和机顶盒获取当前网络连通方式的方法;

首先,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;   
}  

三 Android 机顶盒,判断是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;
        }
    }

你可能感兴趣的:(Android手机和机顶盒,判断当前网络连接方式)