Android 實時監(jiān)測網(wǎng)絡(luò)璧诵,網(wǎng)絡(luò)變化監(jiān)聽 適配7.0

鏈接:(http://www.reibang.com/p/89e3fbd33964)

一、編寫判斷網(wǎng)絡(luò)幫助類 NetUtil

public static int getNetWorkState(Context context) {

//得到連接管理器對象

? ConnectivityManager connectivityManager = (ConnectivityManager) context

? ? ? .getSystemService(Context.CONNECTIVITY_SERVICE);

? NetworkInfo activeNetworkInfo = connectivityManager

? ? ? ? ? ? .getActiveNetworkInfo();

? //如果網(wǎng)絡(luò)連接晌柬,判斷該網(wǎng)絡(luò)類型

? if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {

? ? if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_WIFI)) {

? ? ? ? ? ? return NETWORK_WIFI;//wifi

? ? ? } else if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_MOBILE)) {

? ? ? ? ? ? return NETWORK_MOBILE;//mobile

? ? ? }

? } else {

? ? ? ? //網(wǎng)絡(luò)異常

? ? ? ? return NETWORK_NONE;

? }

? ? return NETWORK_NONE;

}

二质欲、編寫檢測網(wǎng)絡(luò)變化廣播類

public class NetBroadcastReceiver extends BroadcastReceiver {

? ? public NetChangeListener listener = BaseActivity.listener;

? ? @Override

? ? public void onReceive(Context context, Intent intent) {

? ? ? ? // TODO Auto-generated method stub

? ? ? ? // 如果相等的話就說明網(wǎng)絡(luò)狀態(tài)發(fā)生了變化

? ? ? ? Log.i("NetBroadcastReceiver", "NetBroadcastReceiver changed");

? ? ? ? if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {

? ? ? ? ? ? int netWorkState = NetUtil.getNetWorkState(context);

? ? ? ? ? ? // 當(dāng)網(wǎng)絡(luò)發(fā)生變化共郭,判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)祠丝,并通過NetEvent回調(diào)當(dāng)前網(wǎng)絡(luò)狀態(tài)

? ? ? ? ? ? if (listener != null) {

? ? ? ? ? ? ? ? listener.onChangeListener(netWorkState);

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? // 自定義接口

? ? public interface NetChangeListener {

? ? ? ? void onChangeListener(int status);

? ? }

}

三、注冊廣播

<receiver android:name=".network.NetBroadcastReceiver">

? ? <intent-filter>

? ? ? ? <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

? ? </intent-filter>

</receiver>

這里有一個問題除嘹,在Android 7.0之靜態(tài)注冊廣播的方式被取消了写半,所以我們這里采用動態(tài)注冊的方式

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

? ? //實例化IntentFilter對象

? ? IntentFilter filter = new IntentFilter();

? ? filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");

? ? netBroadcastReceiver = new NetBroadcastReceiver();

? ? //注冊廣播接收

? ? registerReceiver(netBroadcastReceiver, filter);

}

四、創(chuàng)建一個回調(diào)當(dāng)前網(wǎng)絡(luò)狀態(tài)值的接口類

// 自定義接口

public interface NetChangeListener {

? ? void onChangeListener(int status);

}

五尉咕、并在BaseActivity中實現(xiàn)該接口叠蝇,廣播檢測到網(wǎng)絡(luò)變化時,通過onChangeListener回調(diào)當(dāng)前網(wǎng)絡(luò)狀態(tài)至BaseActivity

/**

* 網(wǎng)絡(luò)變化之后的類型

*/

@Override

public void onChangeListener(int netMobile) {

? ? // TODO Auto-generated method stub

? ? this.netType = netMobile;

? ? Log.i("netType", "netType:" + netMobile);

? ? if (!isNetConnect()) {

? ? ? ? showNetDialog();

? ? ? ? T.showShort("網(wǎng)絡(luò)異常年缎,請檢查網(wǎng)絡(luò)");

? ? } else {

? ? ? ? hideNetDialog();

? ? ? ? T.showShort("網(wǎng)絡(luò)恢復(fù)正常");

? ? }

}

六悔捶、這里寫了個dialog用來提示網(wǎng)絡(luò)的變化 showNetDialog() 和 hideNetDialog()分別用來顯示和隱藏dialog

/**

* 彈出設(shè)置網(wǎng)絡(luò)框

*/

private void showNetDialog() {

? ? if (alertDialog == null) {

? ? ? ? alertDialog = new MyAlertDialog(this).builder().setTitle("網(wǎng)絡(luò)異常")

? ? ? ? ? ? ? ? .setNegativeButton("取消", new OnClickListener() {

? ? ? ? ? ? ? ? ? ? @Override

? ? ? ? ? ? ? ? ? ? public void onClick(View view) {

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }).setPositiveButton("設(shè)置", new OnClickListener() {

? ? ? ? ? ? ? ? ? ? @Override

? ? ? ? ? ? ? ? ? ? public void onClick(View view) {

? ? ? ? ? ? ? ? ? ? ? ? Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);

? ? ? ? ? ? ? ? ? ? ? ? startActivity(intent);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }).setCancelable(false);

? ? }

? ? alertDialog.show();

? ? showMsg("網(wǎng)絡(luò)異常,請檢查網(wǎng)絡(luò)");

}

七单芜、通過Intent跳轉(zhuǎn)到網(wǎng)絡(luò)設(shè)置頁面

Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);

startActivity(intent);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜕该,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子洲鸠,更是在濱河造成了極大的恐慌堂淡,老刑警劉巖馋缅,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绢淀,居然都是意外死亡萤悴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門皆的,熙熙樓的掌柜王于貴愁眉苦臉地迎上來覆履,“玉大人,你說我怎么就攤上這事费薄∧诠罚” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵义锥,是天一觀的道長。 經(jīng)常有香客問我岩灭,道長拌倍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任噪径,我火速辦了婚禮柱恤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘找爱。我一直安慰自己梗顺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布车摄。 她就那樣靜靜地躺著寺谤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吮播。 梳的紋絲不亂的頭發(fā)上变屁,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音意狠,去河邊找鬼粟关。 笑死,一個胖子當(dāng)著我的面吹牛环戈,可吹牛的內(nèi)容都是我干的闷板。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼院塞,長吁一口氣:“原來是場噩夢啊……” “哼遮晚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起迫悠,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤鹏漆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艺玲,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡括蝠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了饭聚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忌警。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秒梳,靈堂內(nèi)的尸體忽然破棺而出法绵,到底是詐尸還是另有隱情,我是刑警寧澤酪碘,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布朋譬,位于F島的核電站,受9級特大地震影響兴垦,放射性物質(zhì)發(fā)生泄漏徙赢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一探越、第九天 我趴在偏房一處隱蔽的房頂上張望狡赐。 院中可真熱鬧,春花似錦钦幔、人聲如沸枕屉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搀擂。三九已至,卻和暖如春卷玉,著一層夾襖步出監(jiān)牢的瞬間哥倔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工揍庄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留咆蒿,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓蚂子,卻偏偏與公主長得像沃测,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子食茎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程蒂破,因...
    小菜c閱讀 6,358評論 0 17
  • 1、撥打電話 public static void call(Context context, String ph...
    jxuanwu閱讀 1,203評論 0 2
  • 主要積累一些開發(fā)中比較 常用的工具類别渔,部分借鑒于網(wǎng)絡(luò)附迷,主要來源于平時開發(fā)因需求而生的小工具類 13惧互、ArithUt...
    大鴨梨leepear閱讀 665評論 0 1
  • 流量管理的位置在com.oneplus.security.network下面 包含 calibrate 校準(zhǔn)功能包...
    panberglee閱讀 1,174評論 2 2
  • 周檢視8月19曰一8月25曰 一、沒有記錄就沒有發(fā)生喇伯。 我在追求:有序喊儡,自律,豐富的慢生活稻据。明確自己努力的方向過輕...
    娃娃_f08c閱讀 187評論 0 0