ANDROID: Как зарегистрироваться для изменения подключения из Сервиса? - PullRequest
0 голосов
/ 26 февраля 2012

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

Для достижения этого я объявил в своем сервисе открытый приемник класса членов.Ниже приведены фрагменты кода.

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 Ответ

1 голос
/ 26 февраля 2012

Try ...

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

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

...