Как установить изображение экрана блокировки Android - PullRequest
33 голосов
/ 16 апреля 2010

Я только начинаю программировать на Android и хочу посмотреть, есть ли способ программно установить изображение экрана блокировки. Я нашел различные способы установки обоев в API, но я не могу найти эквивалентные способы установки изображения экрана блокировки.

Я видел различные посты, в которых говорилось, что настройка экрана блокировки путем добавления виджетов или фрагментов приложений невозможна, но, безусловно, должен быть способ установить изображение программно?

Приветствия

Robin

Ответы [ 4 ]

37 голосов
/ 02 августа 2016

Начиная с уровня API 24, они добавили новые методы (и обновили документацию ) и флаги для WallpaperManager, которые позволяют вам установить Wallpaper не только на домашний экран, но и на Lockscreen

Чтобы установить Wallpaper на Lockscreen, используйте новый флаг WallpaperManager.FLAG_LOCK и один из методов, которые принимают int which

WallpaperManager.getInstance(this).setStream(inputStream, null, true, WallpaperManager.FLAG_LOCK);

Вы также можете использовать один из следующих методов

int setStream (InputStream bitmapData,  Rect visibleCropHint,  boolean allowBackup, int which)

int setResource (int resid, int which)

int setBitmap (Bitmap fullImage, Rect visibleCropHint,  boolean allowBackup,  int which)

Приятным дополнением является то, что теперь вы также можете проверить, разрешено ли вам устанавливать обои с помощью isSetWallpaperAllowed, и получить текущий набор обоев с помощью getWallpaperFile

Ознакомьтесь с обновленной документацией для WallpaperManager.

13 голосов
/ 16 апреля 2010

В Android нет "изображения блокировки экрана". Скорее всего, не существует концепции «изображения экрана блокировки», которая одинакова для стандартного Android, HTC Sense, MOTOBLUR и т. Д. Это просто не является частью Android SDK.

Проект, на который указывает г-н Рейк, является нарушением безопасности, которое претендует на замену экрана блокировки.

3 голосов
/ 11 февраля 2015

Есть способ сделать это на устройствах Samsung. В намерение вы можете положить дополнительно.

intent.putExtra("SET_LOCKSCREEN_WALLPAPER", true);
startActivity(intent);

Я проверял это только на некоторых телефонах Samsung, и нет гарантии, что это не сломается в будущем Используйте с осторожностью.

0 голосов
/ 24 марта 2017

Есть еще один способ сделать это.сначала вам нужно сохранить картинку, которую вы хотите установить на заблокированном экране, в папку (предположим, она называется «appName»). Затем, используйте следующий код, чтобы открыть галерею, после открытия галереи.и выберите картинку в галерее системы.в галерее пользователь может установить картинку в качестве обоев или бумаги для экрана блокировки.

// этот код для открытия галереи.startActivity (новое намерение (Intent.ACTION_SET_WALLPAPER));

...