Перетащите мультиокно в android элемента в разных форматах - PullRequest
0 голосов
/ 08 февраля 2020

Я работаю над двумя android приложениями, которые должны поддерживать функцию перетаскивания в многооконном режиме. Я могу заставить работать перетаскивание между этими двумя приложениями. Перетаскиваемые элементы сериализуются в определенном формате данных c и совместно используются с другим приложением с помощью механизма общего URI через поставщика файлов android. Другое приложение знает этот формат данных и десериализует данные соответствующим образом при удалении.

Итак, я записываю данные во временный файл, создаю для него общий URI и создаю android данные клипа с этим URI и вызовите view.startDragAndDrop (). Кажется, это работает для этих двух приложений, теперь у меня есть еще два требования:

1) - элементы, которые есть в моих приложениях, могут быть преобразованы в изображения (jpg / png), и я хочу реализовать что-то что я могу перетащить элементы моего приложения в другое приложение, такое как gmail. Итак, я пытаюсь создать два разных файла - один с настраиваемым форматом для совместного использования с другим моим приложением, а другой с форматом jpg для совместного использования с gmail, а затем создаю clipData с двумя ClipData.Item (каждый из которых имеет разные общие URI ), но это не похоже на работу, так как кажется, что приложения читают только первый элемент в clipData, и, поскольку это пользовательский формат, он игнорируется. Есть ли способ, которым я могу добиться этого, чтобы мое другое приложение считывало файл пользовательских данных, а gmail - файл jpg?

2) - На данный момент я записываю данные в общий файл перед вызовом API startDragAndDrop (). Могу ли я отложить запись данных через провайдера файлов, чтобы я записывал данные, когда происходит сброс?

...