Đang cố gắng kiểm tra kết nối Internet trong ứng dụng của tôi. Có một quy tắc ứng biểu hiện của tôi:Cuộc gọi của Người nhận phát sóng hai lần
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
Và có một xử lý lớp:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction() != null && intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE"));
{
Log.d("myLogs", "Network connectivity change");
if (intent.getExtras() != null) {
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
ConnectivityManager.EXTRA_NETWORK_INFO);
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
Log.i("myLogs", "Network " + ni.getTypeName() + " connected");
}
}
if (intent.getExtras().getBoolean(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
Log.d("myLogs", "There's no network connectivity");
}
}
}
}
Trong Logcat của tôi tôi nhận được một bức tranh giống như một:
04-11 23:24:48.021: D/myLogs(10261): Network connectivity change
04-11 23:24:48.021: I/myLogs(10261): Network WIFI connected
04-11 23:24:48.202: D/myLogs(10261): Network connectivity change
04-11 23:24:48.202: I/myLogs(10261): Network WIFI connected
Vì vậy, người nhận được gọi hai lần. Tại sao? Có một số vấn đề với tất cả các loại kết nối.
Có thể có các cấp độ khác nhau được kết nối và 2 nhật ký của bạn là 2 tiểu bang khác nhau. Tôi muốn đăng xuất thêm thông tin để xem chúng khác nhau như thế nào. –
Cố gắng đăng nhập 'nếu (netInfo! = Null && netInfo.isConnected()) { \t \t \t \t \t Log.i ("myLogs", "Mạng" + netInfo.getTypeName() + "được kết nối"); \t \t \t} ' Có ý kiến cho rằng có hai tiểu bang - isConnecting và isConnected, nhưng cùng một vấn đề/ – Sunstrike