[英]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.