Вещательный приемник для подключения к интернету от Сервиса - PullRequest
0 голосов
/ 27 июля 2011

Я внедряю широковещательный приемник внутри службы, которая должна прослушивать доступность интернет-соединения.Сервис запускается из основной активности приложения.Проблема в том, что слушатель вещания фактически ничего не слушает.Мой код:

public class MyService extends Service {

public final static String SEND_DATA_BROADCAST = "com.myapp.SEND_DATA"; 
private final static String LOG_TAG="-Service-";
private BroadcastReceiver   updateListener;

@Override
public void onCreate()
{
    super.onCreate();

    //create listener

     final IntentFilter theFilter = new IntentFilter();
        theFilter.addAction(SEND_DATA_BROADCAST);
        this.updateListener = new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {
                // Do whatever you need it to do when it receives the broadcast
                // Example show a Toast message...
                Log.d(LOG_TAG,"Listening..");
            }
        };

    // register listener
    Log.d(LOG_TAG,"Registering Listener");
    this.registerReceiver(this.updateListener, theFilter);
    listenerRegistered = true;
    Log.d(LOG_TAG,"Listener Registered");
}

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Я сделал быстрый поиск всех доступных намерений, и кажется, что то, что вы пытаетесь сделать, не может быть идентифицировано как намерение (и, следовательно, обнаружено BroadcastReceiver)

попробуйте использовать класс PhoneStateListener.

должно быть множество примеров использования этого класса, и вы должны искать этот метод обратного вызова onDataConnectionStateChanged () вместе с этим флагом LISTEN_DATA_CONNECTION_STATE ... или чем-то похожим.

0 голосов
/ 27 июля 2011

Вы должны разбить ваш BroadcastReceiver на его собственный класс и зарегистрировать его в своем манифесте.В противном случае он не будет зарегистрирован до тех пор, пока не будет запущен ваш Service.Более подробную информацию об этом можно найти здесь: http://developer.android.com/reference/android/content/BroadcastReceiver.html

Трудно помочь в дальнейшем без подробного объяснения того, что вы подразумеваете под "слушателем вещания не работает должным образом".

...