в мире iOS данные могут быть обменены между приложениями с использованием Open Protocol. Например, если у меня есть электронное письмо с вложением pdf, я могу открыть его в PDFExpert, даже если приложения работают на SandBox, и у них нет файловой системы общего доступа.
В случае Android я заметил, что такая процедура отличается, например, я могу сохранить документ в файловой системе, пусть say/mnt/Apps_Name, а затем я могу снова открыть этот документ в других приложениях.
Есть ли способ заставить пользователя испытать обмен данными/документами между приложениями, например, в iOS World? У вас есть пример? Некоторые ссылки на официальную документацию? Нужна ли им реализация Bonjour или Zero Conf?
Возможно, подход Intent - это то, что вы ищете. Установив действие для намерения, скажем, например, ACTION_VIEW, вы устанавливаете соответствующие данные в Intent (т.е. файл pdf), и система определяет, какие приложения могут показывать эту информацию. Если доступно несколько приложений, обычно диалог позволяет пользователям решить это приложение.
Пример в формате PDF:
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);
Функция Intents - один из моих фаворитов в Android Development. См. Например, как легко делиться файлом/текстом/изображением/... без боли при реализации любого Oauth/Oauth2....
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
String toShare = "This is the text to share";
// You can add extras
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
// Start intent with choose prompt
startActivity(Intent.createChooser(intent, "Share via"));
Результат:
Android 4.1 добавляет Network Service Discovery, которая должна быть именно то, что вы хотите - кажется, фактически реализована поверх Bonjour под капотом.