Что я пробовал:
- Экспортировал стикеры как анимированный 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, чтобы анимированные стикеры отправлялись через Cloud API Media API + Messages API (с media_id) для их анимации, а не через commitContent с клавиатуры?
Если для анимированных наклеек поддерживается commitContent, какой именно тип MIME или метаданные должны быть следует включить во избежание сглаживания?
Существуют ли дополнительные требования (флаги цикла, фрагменты ANIM/ALPH в WebP, метаданные в файлеcontents.json), которые должны быть установлены для того, чтобы WhatsApp распознавал стикер как анимированный?
Может ли стороннее приложение для клавиатуры отправлять анимированные стикеры, которые анимируются в чатах WhatsApp для пользователей, или это поддерживается только через Business Cloud API?>
Мобильная версия