Приемник широковещания не работает в ICS, если приложение не запускается по крайней мере один раз - PullRequest
13 голосов
/ 31 марта 2012

Этот вопрос задавался несколько раз при переполнении стека, но решения пока нет.У меня есть широковещательный приемник, предназначенный для получения действия, связанного с USB. Ответственный приемник широковещательного сообщения заключается в том, что, если я получу намерение запустить мое приложение. В файле манифеста я добавил получателя. У меня та же самая логика, работающая в GingerBread, но у меня ICS не работает. Многие вопросы, такие как, широковещательный не вызывающий

1 : Загрузка Android BroadCast Не вызывает и Broadreciever не работает

Если я запускаю приложение вручную один раз, то со следующего раза, когда USBподключено мое приложение запускается автоматически.пытается ответить на тот же вопрос, но без ответа.Есть ли какое-то решение для этого в ICS?

Это мой приемник

        <receiver android:name="com.test.MyReceiver">
                <intent-filter>
                    <action android:name="android.hardware.usb.action.USB_STATE" />
                    <action android:name="android.net.wifi.STATE_CHANGE" />
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
                </intent-filter>
            </receiver>
    and this is my class
    public class MyReceiver extends BroadcastReceiver {
    .
    .
    .

  public void onReceive(Context context, Intent intent) {
.

Я где-нибудь ошибаюсь?

Заранее спасибо --Kozlov

1 Ответ

11 голосов
/ 31 марта 2012

Есть ли какое-то решение для этого в ICS?

Работает правильно. Начиная с Android 3.1, BroadcastReceiver не будет работать, пока пользователь не запустит действие вручную. Я писал об этом восемь месяцев назад .

...