Как заставить приложение создавать миниатюру (снимок) для списка последних приложений?

Тестер моего приложения сообщил: "Миниатюра приложения в списке" Последние приложения "вообще не настраивается. У меня это выглядит как обои рабочего стола (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() действия.

Другие вопросы по тегам