繁体   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