0

我想在设备连接或断开互联网以执行更新时收到通知。我已将此代码放在清单文件中:

   <receiver android:name=".Conectivity" android:enabled="true" android:exported="true">
            <intent-filter>
                  <action android:name="android.net.conn.CONNECTIVITY_CHANGE"></action>

            </intent-filter>

这是我的连接课:

package com.funny.pack;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Conectivity extends BroadcastReceiver {

    @Override
    public void onReceive(Context arg0, Intent arg1) {

        Log.w("DHA", "Ceva e diferit la conectivitate");

    }

}

当设备连接或断开互联网连接时,我不会收到通知,我认为这个广播接收器必须只能从代码中实现,对吗?是否有可以从清单文件实现的广播接收器列表,反之亦然?

4

1 回答 1

1

关注片段将帮助您。

创建一个将处理连接状态通知的 BroadcastReceiver

public class MainActivity extends Activity {
    // rest of the code in the Activity are committed for clarity
        private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
                String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
                boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
                NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
                NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

                // do application-specific task(s) based on the current network state, such
                // as enabling queuing of HTTP requests when currentNetworkInfo is connected etc.
            }
        };

     registerReceiver(mConnReceiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

    }

包括

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在清单中

于 2012-06-06T13:46:45.377 回答