Я пытаюсь скопировать двоичный файл (мой собственный контент, не являющийся стандартным) из Google Drive в мое приложение с помощью пункта меню «Отправить копию» на Google Диске.
Я посмотрел в намерении, которое Google Drive отправляет с помощью Intent Intercept, и в основном это
- ACTION - android .intent.action.SEND
- DATA - null
- MIME - приложение / поток октетов
- URI - намерение: #intent; действие = android .intent.action.SEND; тип = приложение / поток октетов; launchFlags = 0x1b080000; конец
- ФЛАГИ - FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET FLAG_ACTIVITY_FORWARD_RESULT FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT FLAG_ACTIVITY_PREVIOUS_IS_TOP FLAG_RECEIVER_FOREGROUND
Фильтр намерений в релевантной активности моего приложения:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:mimeType="application/octet-stream" />
</intent-filter>
, и после некоторой возни он теперь отображается в списке «Отправить файл с» на Google Диске .
Если я выберу свое приложение в качестве цели, оно появится в onCreate () соответствующего действия, я могу получить намерение в порядке с помощью getIntent (), но getData () - это то, что я использовал использовать с намерениями ACTION_VIEW из других мест - возвращает ноль, вероятно, неудивительно, поскольку в приведенном выше намерении данные перечислены как ноль.
В чем я не совсем уверен - с моими ограниченными знаниями и прочтением «Получение» простые данные из документации других приложений - что делать дальше. Как получить доступ к данным файла, чтобы я мог их скопировать?
Следующий вопрос, при условии, что у меня все получится (с полезными ответами), если я хочу отправить сразу несколько файлов с Google Диска, мне кажется, что тогда он будет использовать намерение SEND_MULTIPLE, так как же тогда я получу доступ к данным каждого файла?