簡體   English   中英

Android:用於互聯網連接的BroadcastReceiver

[英]Android: BroadcastReceiver for internet connection

我試圖使我的BroadcastReceiver正常工作,但是當我斷開Internet連接時出現了問題,我得到了Toast “請將該設備連接到互聯網。”,另一方面,我得到的是相同的Toast “請連接設備連接到互聯網。” 當我再次建立互聯網連接時。 班上有什么問題嗎?

 package com.bustracker; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.util.Log; import android.widget.Toast; public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting(); if (isConnected) { Toast.makeText(context, "The device is connected to the internet ", Toast.LENGTH_SHORT).show(); Log.i("NET", "connecte" +isConnected); } else { Toast.makeText(context, "Please connect the device to the internet.", Toast.LENGTH_SHORT).show(); } } } 

  <receiver android:name=".ConnectionChangeReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> 

問題是您正在獲得移動數據連接而不是wifi,因此即使設備已連接以獲取當前的NetworkInfo ,它仍然會為您帶來錯誤消息

NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM