4.1.3.9 监听网络状态,3G,WIFI,
生活随笔
收集整理的這篇文章主要介紹了
4.1.3.9 监听网络状态,3G,WIFI,
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
注意了:android.net.conn.CONNECTIVITY_CHANGE 是用來(lái)監(jiān)聽(tīng)網(wǎng)絡(luò)變化的就是ConnectivityManager.CONNECTIVITY_ACTION
監(jiān)聽(tīng)網(wǎng)絡(luò)的狀態(tài):
1: 第一步就是注冊(cè)權(quán)限,這個(gè)權(quán)限是,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,INTERNET
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.INTERNET"/>
如果是的話(huà),就獲取當(dāng)前活動(dòng)的連接,但是首先要獲取當(dāng)前的
ConnectivityManager cm = context.getSystemService(Service.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActivtNetWork();
int type = networkInfo.getType();
int state = networkInfo.getState();
switch(types){
case ConnectivityManager.TYPE_WIFI:
if(state = networkInfo.State.CONNECTED)
break;
....
監(jiān)聽(tīng)網(wǎng)絡(luò)的狀態(tài):
1: 第一步就是注冊(cè)權(quán)限,這個(gè)權(quán)限是,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE,INTERNET
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.INTERNET"/>
2: 然后創(chuàng)建一個(gè)BroadcastReceiver,里面有一個(gè)onReceiver();
3: 在這個(gè)onReceiver里面來(lái)判斷是否是這個(gè)ConnectivityManager.CONNECTIVITY_ACTION如果是的話(huà),就獲取當(dāng)前活動(dòng)的連接,但是首先要獲取當(dāng)前的
ConnectivityManager cm = context.getSystemService(Service.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActivtNetWork();
int type = networkInfo.getType();
int state = networkInfo.getState();
switch(types){
case ConnectivityManager.TYPE_WIFI:
if(state = networkInfo.State.CONNECTED)
break;
....
}
package tech.androidstudio.connectionbroadcastreceiverdemo;import android.annotation.TargetApi; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkInfo; import android.os.Build; import android.util.Log;/** * Created by Kodulf on 2016/2/29. */ public class ConnectionBroadcastReceiver extends BroadcastReceiver {@Override public void onReceive(Context context, Intent intent) {Log.d("NetworkReceiver", "收到廣播消息" +intent );String action = intent.getAction();if(ConnectivityManager.CONNECTIVITY_ACTION.equals(action)){ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Service.CONNECTIVITY_SERVICE);NetworkInfo activeNetwork = cm.getActiveNetworkInfo();if(activeNetwork!=null){int subtype = activeNetwork.getSubtype();NetworkInfo.State state = activeNetwork.getState();int type = activeNetwork.getType();switch (type){case ConnectivityManager.TYPE_WIFI:if(state==NetworkInfo.State.CONNECTED){Log.d("Kodulf","WIFI Connected++++++++++++++++");}else{Log.d("Kodulf","WIFI DisConnected+++++++++++++++++++");}break;case ConnectivityManager.TYPE_MOBILE:if(state==NetworkInfo.State.CONNECTED){Log.d("Kodulf","Mobile Connected+++++++++++++++++++");}else{Log.d("Kodulf","Mobile DisConnected+++++++++++++++++++");}break;case ConnectivityManager.TYPE_BLUETOOTH:if(state==NetworkInfo.State.CONNECTED){Log.d("Kodulf","BLUETOOTH Connected+++++++++++++++++++");}else{Log.d("Kodulf","BLUETOOTH DisConnected+++++++++++++++++++");}break;}}}} }
4:然后在清單文件中添加recevier,這個(gè)有一個(gè)優(yōu)先級(jí)為1000
<receiver android:name=".ConnectionBroadcastReceiver"><intent-filter android:priority="1000"><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent-filter> </receiver>
總結(jié)
以上是生活随笔為你收集整理的4.1.3.9 监听网络状态,3G,WIFI,的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js画矢量图
- 下一篇: Mofile免费网盘容量翻倍了