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 に答える