網(wǎng)絡(luò)判斷

packagetext.bawei.com.internet;

importandroid.content.Context;

importandroid.net.ConnectivityManager;

importandroid.net.NetworkInfo;

importandroid.os.Bundle;

importandroid.support.v7.app.AppCompatActivity;

importandroid.telephony.TelephonyManager;

importandroid.widget.TextView;

publicclassMainActivityextendsAppCompatActivity {

privateTextViewbo1;

privateTextViewbo2;

privateTextViewbo3;

privateTextViewbo4;

privateTextViewbo5;

privateTextViewbo6;

privateTextViewbo7;

privateTextViewbo8;

privateTextViewbo9;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

//判斷是否有網(wǎng)絡(luò)連接

booleannetworkConnected = isNetworkConnected(MainActivity.this);

bo1.setText("判斷是否有網(wǎng)絡(luò)連接networkConnected:? "+ networkConnected);

//判斷WIFI網(wǎng)絡(luò)是否可用

booleanwifiConnected = isWifiConnected(MainActivity.this);

bo2.setText("判斷WIFI網(wǎng)絡(luò)是否可用wifiConnected:? "+ wifiConnected);

//判斷MOBILE網(wǎng)絡(luò)是否可用

booleanmobileConnected = isMobileConnected(MainActivity.this);

bo3.setText("判斷MOBILE網(wǎng)絡(luò)是否可用mobileConnected:? "+ mobileConnected);

//-----------------------------------------------

//獲取當(dāng)前網(wǎng)絡(luò)連接的類型信息

//獲取當(dāng)前的網(wǎng)絡(luò)狀態(tài)-1:沒有網(wǎng)絡(luò)1:WIFI網(wǎng)絡(luò)2:wap網(wǎng)絡(luò)3:net網(wǎng)絡(luò)

intconnectedType =getConnectedType(MainActivity.this);

bo4.setText("獲取當(dāng)前網(wǎng)絡(luò)連接的類型信息connectedType:? "+ connectedType);

ConnectivityManager connMgr = (ConnectivityManager) MainActivity.this

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

intsubtype = networkInfo.getSubtype();

String subtypeName = networkInfo.getSubtypeName();

bo5.setText("網(wǎng)絡(luò)的類型"+ subtype +"? ? "+"網(wǎng)絡(luò)的名字"+ subtypeName);

intnetworkState = IntenetUtil.getNetworkState(MainActivity.this);

switch(networkState) {

case0:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"沒有網(wǎng)絡(luò)連接");

break;

case1:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"wifi連接");

break;

case2:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"2G");

break;

case3:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"3G");

break;

case4:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"4G");

break;

case5:

bo6.setText("當(dāng)前網(wǎng)絡(luò)類型networkState:? "+"NETWORN_MOBILE");

break;

}

}

//判斷是否有網(wǎng)絡(luò)連接

publicbooleanisNetworkConnected(Context context) {

if(context !=null) {

ConnectivityManager mConnectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();

if(mNetworkInfo !=null) {

returnmNetworkInfo.isAvailable();

}

}

returnfalse;

}

//判斷WIFI網(wǎng)絡(luò)是否可用

publicbooleanisWifiConnected(Context context) {

if(context !=null) {

ConnectivityManager mConnectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mWiFiNetworkInfo = mConnectivityManager

.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if(mWiFiNetworkInfo !=null) {

returnmWiFiNetworkInfo.isAvailable();

}

}

returnfalse;

}

//判斷MOBILE網(wǎng)絡(luò)是否可用

publicbooleanisMobileConnected(Context context) {

if(context !=null) {

ConnectivityManager mConnectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mMobileNetworkInfo = mConnectivityManager

.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if(mMobileNetworkInfo !=null) {

returnmMobileNetworkInfo.isAvailable();

}

}

returnfalse;

}

//獲取當(dāng)前網(wǎng)絡(luò)連接的類型信息

publicstaticintgetConnectedType(Context context) {

if(context !=null) {

ConnectivityManager mConnectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();

if(mNetworkInfo !=null&& mNetworkInfo.isAvailable()) {

returnmNetworkInfo.getType();

}

}

return-1;

}

privatevoidinitView() {

bo1= (TextView) findViewById(R.id.bo1);

bo2= (TextView) findViewById(R.id.bo2);

bo3= (TextView) findViewById(R.id.bo3);

bo4= (TextView) findViewById(R.id.bo4);

bo5= (TextView) findViewById(R.id.bo5);

bo6= (TextView) findViewById(R.id.bo6);

bo7= (TextView) findViewById(R.id.bo7);

bo8= (TextView) findViewById(R.id.bo8);

bo9= (TextView) findViewById(R.id.bo9);

}

publicstaticclassIntenetUtil {

//沒有網(wǎng)絡(luò)連接

publicstaticfinalintNETWORN_NONE=0;

//wifi連接

publicstaticfinalintNETWORN_WIFI=1;

//手機(jī)網(wǎng)絡(luò)數(shù)據(jù)連接類型

publicstaticfinalintNETWORN_2G=2;

publicstaticfinalintNETWORN_3G=3;

publicstaticfinalintNETWORN_4G=4;

publicstaticfinalintNETWORN_MOBILE=5;

/**

*獲取當(dāng)前網(wǎng)絡(luò)連接類型

*

*@paramcontext

*@return

*/

publicstaticintgetNetworkState(Context context) {

//獲取系統(tǒng)的網(wǎng)絡(luò)服務(wù)

ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

//如果當(dāng)前沒有網(wǎng)絡(luò)

if(null== connManager)

returnNETWORN_NONE;

//獲取當(dāng)前網(wǎng)絡(luò)類型,如果為空,返回?zé)o網(wǎng)絡(luò)

NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();

if(activeNetInfo ==null|| !activeNetInfo.isAvailable()) {

returnNETWORN_NONE;

}

//判斷是不是連接的是不是wifi

NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if(null!= wifiInfo) {

NetworkInfo.State state = wifiInfo.getState();

if(null!= state)

if(state == NetworkInfo.State.CONNECTED|| state == NetworkInfo.State.CONNECTING) {

returnNETWORN_WIFI;

}

}

//如果不是wifi,則判斷當(dāng)前連接的是運(yùn)營商的哪種網(wǎng)絡(luò)2g、3g、4g等

NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if(null!= networkInfo) {

NetworkInfo.State state = networkInfo.getState();

String strSubTypeName = networkInfo.getSubtypeName();

if(null!= state)

if(state == NetworkInfo.State.CONNECTED|| state == NetworkInfo.State.CONNECTING) {

switch(activeNetInfo.getSubtype()) {

//如果是2g類型

caseTelephonyManager.NETWORK_TYPE_GPRS://聯(lián)通2g

caseTelephonyManager.NETWORK_TYPE_CDMA://電信2g

caseTelephonyManager.NETWORK_TYPE_EDGE://移動(dòng)2g

caseTelephonyManager.NETWORK_TYPE_1xRTT:

caseTelephonyManager.NETWORK_TYPE_IDEN:

returnNETWORN_2G;

//如果是3g類型

caseTelephonyManager.NETWORK_TYPE_EVDO_A://電信3g

caseTelephonyManager.NETWORK_TYPE_UMTS:

caseTelephonyManager.NETWORK_TYPE_EVDO_0:

caseTelephonyManager.NETWORK_TYPE_HSDPA:

caseTelephonyManager.NETWORK_TYPE_HSUPA:

caseTelephonyManager.NETWORK_TYPE_HSPA:

caseTelephonyManager.NETWORK_TYPE_EVDO_B:

caseTelephonyManager.NETWORK_TYPE_EHRPD:

caseTelephonyManager.NETWORK_TYPE_HSPAP:

returnNETWORN_3G;

//如果是4g類型

caseTelephonyManager.NETWORK_TYPE_LTE:

returnNETWORN_4G;

default:

//中國移動(dòng) 聯(lián)通 電信 三種3G制式

if(strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) {

returnNETWORN_3G;

}else{

returnNETWORN_MOBILE;

}

}

}

}

returnNETWORN_NONE;

}

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容