2015-04-06 132 views
0

我想讓我的BroadcastReceiver工作,但當我斷開互聯網連接時出現問題,然後我得到Toast「請將設備連接到互聯網」。另一方面,我得到相同的吐司「請將設備連接到互聯網。」當我再次建立互聯網連接。這個班有什麼問題嗎?Android:用於互聯網連接的BroadcastReceiver

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 { 
 

 
\t @Override 
 
\t public void onReceive(Context context, Intent intent) { 
 

 
\t \t ConnectivityManager connectivityManager = (ConnectivityManager) context 
 
\t \t \t \t .getSystemService(Context.CONNECTIVITY_SERVICE); 
 
\t \t NetworkInfo activeNetInfo = connectivityManager 
 
\t \t \t \t .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
 
\t \t boolean isConnected = activeNetInfo != null 
 
\t \t \t \t && activeNetInfo.isConnectedOrConnecting(); 
 
\t \t if (isConnected) { 
 
\t \t \t Toast.makeText(context, "The device is connected to the internet ", 
 
\t \t \t \t \t Toast.LENGTH_SHORT).show(); 
 
\t \t \t Log.i("NET", "connecte" +isConnected); 
 
\t \t } else { 
 
\t \t \t Toast.makeText(context, "Please connect the device to the internet.", 
 
\t \t \t \t \t Toast.LENGTH_SHORT).show(); 
 
\t \t } 
 

 
\t } 
 
}

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

+0

>當我再次建立互聯網連接時,我沒有得到任何東西 - 這是否意味着您根本沒有得到祝酒詞,或者祝酒詞還說沒有連接? –

+0

Toast仍然說「請將設備連接到互聯網。」 –

+0

哈哈,你是通過無線或移動數據連接? –

回答

2

的問題是,你所得到的移動數據連接沒有wifi的所以還是讓你一個虛假的,即使該設備被連接到獲取當前NetworkInfo不管

NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo();