Как заставить приложение создавать миниатюру (снимок) для списка последних приложений?
Тестер моего приложения сообщил: "Миниатюра приложения в списке" Последние приложения "вообще не настраивается. У меня это выглядит как обои рабочего стола (tolikdru: возможно, просто прозрачный прямоугольник), или как зеленый фон приложения". экран, но никогда не как настоящий снимок приложения. " Таким образом, поведение примерно так, как описано здесь.
На моем устройстве установлен Android 2.0, поэтому я не могу проверить и отладить проблему (миниатюры в Недавних приложениях начиная с Android 3.0+). Поэтому дальнейшие исследования проводились в "слепом режиме".
Я решил вручную принудительно создать миниатюру приложения, используя onCreateThumbnail(), как предложено здесь. (Чтобы упростить задачу для начала, я не улавливаю настоящий снимок, а беру заставку с экрана заставки.)
@Override
public boolean onCreateThumbnail(Bitmap outBitmap, Canvas thumbCanvas) {
super.onCreateThumbnail(outBitmap, thumbCanvas);
//splashscreen drawable to bitmap
outBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.titel);
//automatically scale to provided canvas
//(is the canvas provided as input ???)
thumbCanvas.drawBitmap(outBitmap, 0, 0, new Paint());
//is the outBitmap itself scaled to canvas or its copy???
return true;
}
Я не уверен в правильности приведенного выше кода, потому что не могу его проверить (см. Ниже).
Согласно документам, другое возможное решение может быть просто фиктивной @Override onCreateThumbnail с только super.onCreateThumbnail() внутри, так как документы говорят:
Реализация по умолчанию возвращает ошибку и не рисует миниатюру; это приведет к тому, что платформа создаст свой собственный эскиз при необходимости.
Но метод onCreateThumbnail не срабатывает, по крайней мере, на моем Android 2. На самом деле трюк предназначен для работы на Android 3+. То же самое сообщается здесь (2012 год), а также здесь (2009 год). В обоих случаях используемая версия Android не указана.
Пожалуйста, помогите с вопросами:
1) Будет ли приведенный выше код работать на устройствах Android 3+, которые используют миниатюры в списке последних приложений?
2) Если нет, есть ли другой способ сделать приложение для создания правильного эскиза (или произвольного рисования по моему выбору)?
Заранее спасибо!
1 ответ
Это проблема с ОС. К сожалению, это просто не похоже на работу. Если по какой-то причине вы не хотите, чтобы люди смотрели на ваше приложение из последних, вы можете поставить
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)
В качестве первой строки в вашем методе onCreate() действия.