Анимированные стикеры WhatsApp становятся статичными при совместном использовании через специальную клавиатуру Android (Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Анимированные стикеры WhatsApp становятся статичными при совместном использовании через специальную клавиатуру Android (

Сообщение Anonymous »

Я разрабатываю собственное приложение для клавиатуры Android (KBoard) на Kotlin, которое позволяет пользователям отправлять стикеры прямо в чаты WhatsApp. Статические стикеры работают нормально, но анимированные стикеры всегда отображаются как статические изображения после попадания в чат.
Что я пробовал:
  • Экспортировал стикеры как анимированный WebP (512×512 пикселей, прозрачный, >500 КБ).
  • Использовал FileProvider для создания URI контента://.
  • Содержимое зафиксировано через InputConnectionCompat.commitContent с типом MIME «image/webp.wasticker».
  • Проверено, что WhatsApp принимает тип MIME и вызов commitContent успешен.
  • Очищен кеш WhatsApp, чтобы избежать старого сглаживания версии.
Фрагмент кода:

Код: Выделить всё

fun sendAnimatedStickerToWhatsApp(uri: Uri, mimeType: String = "image/webp.wasticker") {
val editorInfo = currentInputEditorInfo ?: return
val inputConnection = currentInputConnection ?: return

if (EditorInfoCompat.getContentMimeTypes(editorInfo).contains(mimeType)) {
val clipDescription = ClipDescription("WhatsApp Sticker", arrayOf(mimeType))
val inputContentInfo = InputContentInfoCompat(uri, clipDescription, null)

InputConnectionCompat.commitContent(
inputConnection,
editorInfo,
inputContentInfo,
InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION,
null
)
}
Проблема: несмотря на успешную фиксацию, WhatsApp преобразует анимированный WebP в статическую наклейку.
Требует ли WhatsApp, чтобы анимированные стикеры отправлялись через Cloud API Media API + Messages API (с media_id) для их анимации, а не через commitContent с клавиатуры?
Если для анимированных наклеек поддерживается commitContent, какой именно тип MIME или метаданные должны быть следует включить во избежание сглаживания?
Существуют ли дополнительные требования (флаги цикла, фрагменты ANIM/ALPH в WebP, метаданные в файлеcontents.json), которые должны быть установлены для того, чтобы WhatsApp распознавал стикер как анимированный?
Может ли стороннее приложение для клавиатуры отправлять анимированные стикеры, которые анимируются в чатах WhatsApp для пользователей, или это поддерживается только через Business Cloud API?>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»