Я пытаюсь реализовать обмен изображениями / видео из моего приложения с другими с помощью Android.Chooser
.
И столкнулся с проблемой, что не работает совместное использование видео в FB-Messenger-stories
(не в прямом сообщении, а в "Твоих историях")?
Я пытаюсь это:
val shareIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_STREAM, uri)
type = shareType // tried both: "video/mp4" and "video/*"
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
activity.startActivityForResult(Intent.createChooser(shareIntent,
activity.resources.getText(R.string.share_share_via)), SHARE_ACTIVITY_REQUEST_CODE)
И
val shareIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
type = shareType // tried both: "video/mp4" and "video/*"
clipData = ClipData.newUri(activity.contentResolver, "some_lable", uri)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
activity.startActivityForResult(Intent.createChooser(shareIntent,
activity.resources.getText(R.string.share_share_via)), SHARE_ACTIVITY_REQUEST_CODE)
и это работает везде для фотографий и для видео - везде, кроме FB-Messenger-story.
А в случае с историями FB-Messenger моя активность приводит к Cancel-resultCode
и data=null
Я обнаружил, что это работает в приложении GooglePhotos и попытался сравнить журналы.
Журналы приложения GooglePhoto:
I/ActivityManager: START u0 {act=android.intent.action.SEND
typ=video/mpeg flg=0x10000001
cmp=com.facebook.orca/com.facebook.messenger.intents.MediaEditShareIntentHandler
clip={video/mpeg U:content://com.google.android.apps.photos.contentprovider/0/2/content%3A%2F%2Fmedia%2Fexternal%2Fvideo%2Fmedia%2F51803/ORIGINAL/NONE/542893024} (has extras)} from uid 10088
Мои журналы:
I/ActivityManager: START u0 {act=android.intent.action.SEND
typ=video/mp4 flg=0xb080001
cmp=com.facebook.orca/com.facebook.messenger.intents.MediaEditShareIntentHandler
clip={video/mp4 U:content://com.example.app.debug/posts/posts/post_1562759734301.mp4} (has extras)} from uid 10177
Также пытался добавить флаг Intent.FLAG_RECEIVER_FOREGROUND
, поэтому в логах у меня есть flg=0x1b080001
, но результат тот же.
Есть идеи или предложения, что я делаю не так, пожалуйста?