В моем приложении есть одна служба, которая обновляет все элементы графического интерфейса. Поэтому мне нужно зарегистрировать свою службу в 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 в виртуальном устройстве. Пожалуйста, подскажите, что может быть не так? Правильно ли я делаю?