關(guān)于android.net.conn.CONNECTIVITY_CHANGE廣播無法接收的問題

在工作中調(diào)試一個功能的時候诗眨,發(fā)現(xiàn)之前的android.net.conn.CONNECTIVITY_CHANGE的廣播始終無法收到,而adb logcat打印出來的log發(fā)現(xiàn)有其他應(yīng)用可以收到這個廣播的旦委。后來研究發(fā)現(xiàn)在Android7.0 上為了優(yōu)化后臺省電相關(guān)的東西,已經(jīng)將靜態(tài)注冊這個廣播方式取消了雏亚,7.0 版本上靜態(tài)注冊此廣播的缨硝,已經(jīng)無法收到這個廣播了。
Android 7.0 為了后臺優(yōu)化罢低,推薦使用 JobScheduler 代替 BroadcastReceiver 來監(jiān)聽網(wǎng)絡(luò)變化查辩。

如果你的應(yīng)用無法將targetSDK 降到23或者23以下,有以下兩種比較快捷的適配方式网持。
解決方式有2種:
1.改成動態(tài)注冊宜岛。
2.使用ConnectivityManager.NetworkCallback 來監(jiān)聽網(wǎng)絡(luò)。

第二種實現(xiàn)方式:

final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
cm.requestNetwork(new NetworkRequest.Builder().build(), new ConnectivityManager.NetworkCallback() {
    @Override
    public void onLost(Network network) {
        super.onLost(network);
         ///網(wǎng)絡(luò)不可用的情況下的方法
    }

    @Override
    public void onAvailable(Network network) {
        super.onAvailable(network);
        ///網(wǎng)絡(luò)可用的情況下的方法
    }
});

很簡單功舀。

如果我們僅僅驗證此廣播萍倡,無需申明任何權(quán)限即可收到此廣播消息,但是往往應(yīng)用還需要訪問網(wǎng)絡(luò)等操作日杈,需要申請以下網(wǎng)絡(luò)權(quán)限遣铝。
AndroidManifest.xml中申明權(quán)限:

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>

這幾個權(quán)限都不是危險權(quán)限佑刷,直接申明即可。存在如果不申明android.permission.CHANGE_NETWORK_STATE 這個權(quán)限的時候酿炸,應(yīng)用報錯的情況瘫絮。

總結(jié)

1.如果應(yīng)用程序的targetSDK >= N,可以采用上述兩種方案解決此問題填硕,也就是說靜態(tài)注冊android.net.conn.CONNECTIVITY_CHANGE不再起作用麦萤,需要修改成動態(tài)注冊或者使用ConnectivityManager.NetworkCallback監(jiān)聽網(wǎng)絡(luò)。
2.如果應(yīng)用程序的targetSDK<N扁眯,即使安裝在Android7.0機器上壮莹,同樣可以收到靜態(tài)注冊的廣播。

感謝

參考:http://blog.csdn.net/hqiangtai/article/details/53228510

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姻檀,一起剝皮案震驚了整個濱河市命满,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绣版,老刑警劉巖胶台,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異杂抽,居然都是意外死亡诈唬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門缩麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铸磅,“玉大人,你說我怎么就攤上這事杭朱≡淖校” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵弧械,是天一觀的道長霎槐。 經(jīng)常有香客問我,道長梦谜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任袭景,我火速辦了婚禮唁桩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耸棒。我一直安慰自己荒澡,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布与殃。 她就那樣靜靜地躺著单山,像睡著了一般碍现。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上米奸,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天昼接,我揣著相機與錄音,去河邊找鬼悴晰。 笑死慢睡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的铡溪。 我是一名探鬼主播漂辐,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棕硫!你這毒婦竟也來了髓涯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤哈扮,失蹤者是張志新(化名)和其女友劉穎纬纪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灶泵,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡育八,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赦邻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片髓棋。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惶洲,靈堂內(nèi)的尸體忽然破棺而出按声,到底是詐尸還是另有隱情,我是刑警寧澤恬吕,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布签则,位于F島的核電站,受9級特大地震影響铐料,放射性物質(zhì)發(fā)生泄漏渐裂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一钠惩、第九天 我趴在偏房一處隱蔽的房頂上張望柒凉。 院中可真熱鬧,春花似錦篓跛、人聲如沸膝捞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔬咬。三九已至鲤遥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間林艘,已是汗流浹背盖奈。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留北启,地道東北人卜朗。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像咕村,于是被迫代替她去往敵國和親场钉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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