намерение с типом «android.intent.action.SEND» не работает для выставки - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь найти решение, когда смогу делиться изображениями из своего приложения через Instagram.

В настоящее время я пытаюсь сделать это с намерением, и это выглядит так:

IntentLauncherAndroid .startActivityAsync('android.intent.action.SEND', {
            type: 'image/*',
            extra: {
              'android.intent.extra.STREAM': encodeURIComponent(uri)
            },
            packageName: 'com.instagram.android'
          })

в этом случае переменная 'uri' выглядит как

file:///data/user/0/host.exp.exponent/files/ExperienceData/%2540anonymous%252Frepost-for-free-d795b3f6-6148-4b16-9aa4-b3550402e0a2/images/3.jpg

С этим решением я получу исключение

Error: Permission Denial: starting Intent { act=android.intent.action.SEND cmp=com.viber.voip/.messages.ui.forward.ForwardActivity (has extras) } from ProcessRecord{5e88e89d0 18222:host.exp.exponent/u0a8} (pid=18222, uid=10008) not exported from uid 10216
    at createErrorFromErrorData (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:146)
    at D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:95
    at MessageQueue.__invokeCallback (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:397)
    at D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:127
    at MessageQueue.__guard (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:297)
    at MessageQueue.invokeCallbackAndReturnFlushedQueue (D:\projects\repost-for-free\repost-for-free\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:126)
    at debuggerWorker.js:72

, и я не могу понять, как решитьэто и почему я вижу там cmp = com.viber.voip / .messages.ui.forward.ForwardActivity?

, если я заменю android.intent.action.SEND на 'android.intent.action.VIEW'он сможет инициировать намерение, но предложит неправильные приложения для его обработки (некоторые приложения по умолчанию, такие как карты Google, контакты и т. д.).

Возможно, я не установил правильные разрешения, или есть некоторые конкретныедля вызова намерения «android.intent.action.SEND»?Я вызываю свое намерение после загрузки этого изображения (изображение уже существует на моем телефоне, когда я вызываю намерение).

PS Я попытался преобразовать решение Java в решение Expo (JS), которое можно найти здесь 'https://www.instagram.com/developer/mobile-sharing/android-intents/'

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