Возможно, вы захотите ознакомиться с правилами, действующими при добавлении нескольких пользователей на устройство в этот документ в разделе Эффекты. Должно быть очевидно, что то, чего вы пытаетесь достичь, будет «творческим обходным путем» или просто невозможным.
Итак, какие средства Android существуют для того, чтобы приложения могли обмениваться данными, которые не являются файловой системой? Обычно используется ContentProvider, но я подозреваю, что два экземпляра приложения в песочнице не могут получить доступ к ContentProviders друг друга (и, кроме того, как бы вы их отличили друг от друга?).
Предположим, что приложения-экземпляры пользователя просто не могут получить доступ друг к другу. Может быть, они могли бы совместно использовать некоторые средства системного уровня, которые постоянно доступны для всех приложений, независимо от того, кто является активным пользователем? Единственное, что приходит мне в голову, когда я пишу это, это DropBoxManager. К сожалению, он не является надежно постоянным, поскольку существуют ограничения на объем, который он может хранить, и эти ограничения могут привести к тому, что ваши данные будут удалены из очереди в любое время, прежде чем они смогут быть прочитаны другим экземпляром приложения. Кроме того, данные там по существу общедоступны, что может быть не то, что вам нужно.
Если вы хотите сойти с ума, вы можете вернуться к ContentProviders и каким-то образом использовать поставщиков системного уровня для календаря или контактов, чтобы спрятать данные, если оба приложения знают, как найти секретную специальную запись. Дикие вещи.
Другим решением может быть хранение всех ваших данных на каком-либо сервере, и каждый пользователь должен вводить некоторый ключ, чтобы иметь возможность размещать и читать/записывать ваш блок данных на сервере. Если это не ручной ключ, попробуйте использовать некоторое "уникальное" свойство устройства как ключ. Это, вероятно, лучшее решение, так как у вас больше гарантий, что кто-то случайно не удалит или не раскроет ваши данные.
person
Doug Stevenson
schedule
19.02.2016