Как установить изображение экрана блокировки Android
Я только начинаю программировать для Android и хочу посмотреть, есть ли способ программно установить изображение экрана блокировки. Я нашел различные способы установки обоев в API, но, похоже, не могу найти эквивалентные способы установки изображения экрана блокировки.
Я видел различные сообщения о том, что настройка экрана блокировки путем добавления виджетов или фрагментов приложений невозможна, но наверняка должен быть способ установить изображение программно?
Ура,
Robin
Переведено автоматически
Ответ 1
Начиная с 24-го уровня API, они добавили новые методы (и обновили документацию) и флаги для WallpaperManager которые позволяют вам устанавливать Wallpaper не только для главного экрана, но и для Lockscreen
Чтобы установить Wallpaper на Lockscreen, используйте новый флаг WallpaperManager.FLAG_LOCK, и один из методов, который принимает int which
Вы также можете использовать один из следующих методов
intsetStream(InputStream bitmapData, Rect visibleCropHint, boolean allowBackup, int which)
intsetResource(int resid, int which)
intsetBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which)
Приятным дополнением является то, что теперь вы также можете проверить, разрешено ли вам устанавливать обои через isSetWallpaperAllowed, и получить текущие установленные обои через getWallpaperFile
Ознакомьтесь с обновленной документацией по WallpaperManager.
Ответ 2
В Android нет "изображения экрана блокировки". Безусловно, нет концепции "изображения экрана блокировки", которая была бы одинаковой для стандартных Android, HTC Sense, MOTOBLUR и т.д. Это просто не является частью Android SDK.
Проект, на который указывает мистер Рийк, является нарушением безопасности, которое выдает себя за замену экрана блокировки.
Ответ 3
Есть способ сделать это на устройствах Samsung. В intent можно поставить extra.
Я тестировал это только на некоторых телефонах Samsung, и нет никакой гарантии, что это не выйдет из строя в будущем. Используйте с осторожностью.
Ответ 4
Вы можете использовать эти три метода класса WalpaperManager, но это будет работать только для устройств нулевой версии или выше нее:-
publicintsetBitmap(Bitmap fullImage, Rect visibleCropHint, boolean allowBackup, int which)
publicintsetResource(int resid, int which)
publicintsetStream(InputStream inputStreamData, Rect visibleCropHint, boolean allowBackup, int which)
Параметр этих трех методов:-
Bitmap / resid / inputStreamData:-этот параметр принимает данные
visibleCropHint:-этот параметр принимает объект Rect, который в основном используется для функциональности обрезки, для получения дополнительной информации обратитесь к справочному веб-сайту разработчика Android, вы также можете передать null, если вам не нужна функциональность обрезки
allowBackup: -логическое значение: true, если ОС разрешено создавать резервные копии этого изображения обоев для восстановления на будущее устройство; false в противном случае.
что: - Это один из важнейших параметров, который помогает вам настроить обои для экрана блокировки и домашних обоев. для экрана блокировки используйте WalpaperManager.FLAG_LOCK и для домашних обоев используйте FLAG_SYSTEM
Я привожу один пример, чтобы вы поняли, как его использовать:-