Сохранение сеанса входа в несколько приложений Android

У меня есть два приложения, которые входят в одну и ту же систему, но имеют разные функции и не могут быть установлены одновременно. Я могу без проблем подписать два приложения одной и той же подписью, даже запустить их в одном процессе.

Как я могу сохранить файл cookie для входа (среди прочего) таким образом, чтобы он использовался обоими приложениями и при этом был защищен от неизвестных приложений?


person 700 Software    schedule 30.11.2010    source источник


Ответы (3)


Общий идентификатор пользователя должен предоставить вам доступ к личному хранилищу друг друга, вам просто нужно выяснить, был ли уже установлен другой, выяснить абсолютный путь к его личному хранилищу, а затем посмотреть, есть ли у него файл cookie. Надеюсь, ты не будешь голодать за столом философов.

person Chris Stratton    schedule 30.11.2010
comment
Я сомневаюсь, что возникнет проблема параллелизма, особенно если он получает доступ к логину из контекста запущенной активности. Но это лучшее решение, чем контент-провайдеры (слишком тяжеловесные, доступные для других приложений) или сохранение чего-либо в общесистемном общем хранилище. - person Yoni Samlan; 30.11.2010
comment
Поскольку sharedUserId устарел, есть ли лучший способ сделать то же самое прямо сейчас? - person Kashish Malhotra; 27.05.2021

Эээ... как это называется... поставщик данных? Неа. Я путаю "Сервис" и "Поставщик контента".

Поместите оба приложения и службу входа в один и тот же процесс. Любое приложение должно иметь возможность запускать службу или запрашивать информацию о сеансе и все остальное, что вы, возможно, захотите поместить туда.

Кроме того, вы можете поместить всю эту информацию в общую базу данных.

Сам диалог входа в систему, вероятно, должен быть действием, и я не уверен, что вы можете иметь действие в службе. Вам могут понадобиться дубликаты экранов входа в ваши приложения, которые затем могут передавать данные сеанса в вашу службу для совместного использования.

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

person Mark Storer    schedule 30.11.2010
comment
Это может сработать, но если они не захотят установить 3-й apk из магазина (для установки не из маркета требуются изменения настроек, которые невозможны на всех телефонах), для этого, вероятно, потребуются две идентичные копии сервиса с уникальными именами, по одной в каждом apk, и какая-то логика выяснить, с чего начать. - person Chris Stratton; 30.11.2010
comment
Думаю два одинаковых экземпляра. ХОТЯ... на рынке есть несколько приложений, которые требуют, чтобы у вас уже была установлена ​​какая-то другая вещь. ВОЗДУХ, например. Опубликуйте службу как программную библиотеку, и все готово. - person Mark Storer; 30.11.2010

Вот хорошее решение:

Как лучше всего настроить параметры приложения в Android?

Поскольку вы хотите разделить это между двумя приложениями, независимо от того, как вы хотите это реализовать, не забывайте, что это будет видно всем приложениям. Вы можете зашифровать свой пароль или идентификатор сеанса. Вот пример:

http://android.voxisland.com/code_examples/How_to_encrypt_and_decrypt_strings.rhtml

Удачи!

person Emmanuel    schedule 30.11.2010