ANDROID: Как зарегистрироваться для изменения подключения из Сервиса?

В моем приложении у меня есть один сервис, который обновляет все элементы графического интерфейса. Поэтому мне нужно зарегистрировать свой сервис на CONNECTIVITY_CHANGE_ACTION. Таким образом, он может уведомлять все действия об обновлении GUI всякий раз, когда он получает какие-либо обновления соединения в виде широковещательной рассылки.

Чтобы достичь этого, я объявил приемник вещания класса публичного члена в моем сервисе. Ниже приведены фрагменты кода.

public class BkgService extends Service{

public class ConnectionUpdater extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

            if (info == null || !info.isConnected()) {

            }
            else{
                cd.setIsOnline(true,context);
            }

            Intent intent1 = new Intent();
            intent1.setAction(ACTION_GUI_UPDATE);
            sendBroadcast(intent1);
        }

}

в моем файле манифеста я объявил так

<service android:name=".BkgService" />

<receiver android:name="BkgService.ConnectionUpdater">
     <intent-filter>
         <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
     </intent-filter>
</receiver>

Я не получаю никакой ошибки за это. Но я не получаю никаких широковещательных обновлений, когда я включаю / отключаю данные 3G в виртуальном устройстве. Подскажите пожалуйста что может быть не так? Я делаю это правильно?

1 ответ

Пытаться...

<receiver android:name=".BkgService$ConnectionUpdater">

Вы пропустили . до BkgService и внутреннее имя класса должно быть отделено от основного класса $ знак.

Другие вопросы по тегам