Как установить растровое изображение в качестве обоев экрана блокировки в моем приложении для обоев на основе Kotlin? - PullRequest
0 голосов
/ 27 мая 2020

Я делаю приложение для обоев. Здесь я беру изображения из базы данных Firebase. Я хочу дать пользователям возможность установить его в качестве обоев и экрана блокировки. Мне удалось установить изображение в качестве обоев с помощью следующего кода

            val result:Bitmap=fl_iv.drawToBitmap()
            val wallpaperManager = WallpaperManager.getInstance(this)
            try {
                wallpaperManager.setBitmap(result)
            } catch (ex: IOException) {
                ex.printStackTrace()
            }

Здесь fl_iv - это макет кадра, содержащий представление изображения, которое демонстрирует изображение. Я установил там еще одну кнопку, которая позволяет пользователю использовать изображение в качестве обоев экрана блокировки.

Я пробовал использовать этот код для блокировки экрана, но он не работает.

lock_screen.setOnClickListener {
            val wpManager = WallpaperManager.getInstance(this)
            val myBitmap: Bitmap = fl_iv.drawToBitmap()
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    wpManager.setBitmap(myBitmap, null, true, WallpaperManager.FLAG_LOCK)
                }
                else{
                    return@setOnClickListener
                }
            } catch (ex: IOException) {
                ex.printStackTrace()

            }
        }

1 Ответ

0 голосов
/ 27 мая 2020

Вам необходимо указать флаг FLAG_LOCK в вашем wallpaperManager

wallpaperManager.setBitmap(result, null, true, WallpaperManager.FLAG_LOCK)

...