Дополнительные намерения на широковещательном приемнике WallpaperManager

Я создаю приложение для обоев. У меня есть кнопка, которая устанавливает обои. Что я хотел бы сделать, так это проверить, загружены ли обои, если да, установить обои, если нет, загрузить и установить обои.

Я проверяю, существует ли файл с идентификатором (например, 26748.jpg), если да, я успешно устанавливаю обои, если их нет, я загружаю их, но не могу установить.

У меня настроен BroadcastReceiver:

 <receiver android:name=".SinglePhotoActivity$CheckDownloadComplete">
        <intent-filter>
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
        </intent-filter>
    </receiver>

который отображает простое сохраненное сообщение:

 public static class CheckDownloadComplete extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Saved!", Toast.LENGTH_SHORT).show();
    }

}

Проблема в том, что у меня есть два типа установки обоев: один, если обои уже загружены, и один, если их нет. Я провел небольшое исследование и выяснил, что вещательные приемники этого типа не могут содержать каких-либо намерений. Единственное, что я мог сделать, это установить описание для моего запроса DownloadManager, а затем проверить описание в onReceive.

Итак, если изображение уже загружено, я бы хотел отобразить простой тост. Если нет, то загрузите его и после, в OnReceive после завершения загрузки запустите мой код setWallpaper.

Есть ли более опытный способ сделать это?


person dynamitem    schedule 20.01.2017    source источник
comment
Где вы прочитали, что в этом Broadcast reveicer нельзя поставить EXTRA?   -  person Leandro Borges Ferreira    schedule 23.01.2017