Я должен получить широковещательные сообщения для сетевых действий как сеть, соединенная, разъединенная и т.д. Я использую бытовой радиоприемник с этой целью. Может любой говорить мне, какое поглощенное действие я должен получить для сетевых событий, прямо сейчас согласно моему поиску в Интернете, я использую android.net. ConnectivityManager. CONNECTIVITY_ACTION.
Вот мой класс бытового радиоприемника:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class NetworkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals(
android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
// do something..
}
}
}
и я также добавил разрешение для доступа к состоянию сети:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
вот то, как я объявил этот класс в файле манифеста
<receiver class=".NetworkStateReceiver" android:name=".NetworkStateReceiver">
<intent-filter>
<action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
</intent-filter>
</receiver>
Предложите меня правильное поглощенное действие, если я неправ ИЛИ если существует какой-либо другой способ поймать сетевые события.
Вот рабочий пример:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name=".receiver.ConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(ConnectivityReceiver.class.getSimpleName(), "action: "
+ intent.getAction());
}
}