Как поделиться видео в FB-Messenger-истории? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь реализовать обмен изображениями / видео из моего приложения с другими с помощью 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, но результат тот же.

Есть идеи или предложения, что я делаю не так, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...