2010-11-30 13 views
2

私は同じシステムにログインする2つのアプリケーションを持っていますが、それらは別々の機能を持ち、同時にインストールすることはできません。同じシグネチャで問題のない2つのアプリに署名しても、同じプロセスで実行することができます。複数のAndroidアプリ間でログインセッションを維持する

ログインクッキーは、両方のアプリで共有されていて未知のアプリから保護されるような方法で保存することができますか?

答えて

2

共有ユーザーIDを使用すると、お互いのプライベートストレージにアクセスできるようになります。もう一方が既にインストールされているかどうかを調べるだけで、プライベートストレージの絶対パスを把握してから、 。うまくいけば、あなたは哲学者のテーブルを飢えさせません。

+1

特に実行中のアクティビティのコンテキストからログインにアクセスしている場合、同時性の問題が発生することは考えられません。しかし、これはコンテンツプロバイダ(他のアプリにはアクセスできない)やシステム全体の共有ストレージに何かを保存するよりも優れたソリューションです。 –

0

エラー...データプロバイダとは何ですか?いいえ。 「サービス」と「コンテンツプロバイダ」が混在しています。

アプリとログインサービスを同じプロセスで使用します。いずれのアプリでも、サービスを開始したり、セッション情報やその他の情報を問い合わせたりすることができます。

また、すべての情報を共有データベースに入れることができます。

ログインダイアログ自体はおそらくアクティビティである必要があります。サービス内でアクティビティを持つことができるかどうかはわかりません。アプリケーションにログイン画面が重複していなければならない場合があります。ログイン画面では、セッションデータを共有してサービスに渡すことができます。

サービスが別のインストールであるか、両方のアプリケーションにバンドルされる必要があるかどうかはわかりません。ここで

+0

これはうまくいくかもしれませんが、マーケットから3番目のapkをインストールしたいのでなければ(非マーケットインストールでは、すべての電話で設定変更が不可能です)、おそらく2つの固有の名前が付けられていますが、どのロジックを開始するかを決定するロジックがあります。 –

+0

私は「2つの同一のコピー」と考えています。たくさん...市場にはすでに他のものがインストールされている必要があるいくつかのアプリがあります。例えば、AIR。サービスを「ソフトウェアライブラリ」として公開すれば、あなたはうまく行きます。 –

0

は良い解決策だ:

What's the best way to do "application settings" in Android?

次の2つのアプリケーション間でこれを共有したいので、関係なく、あなたがそれを実装する方法のため、これはすべてのアプリケーションに表示されますことを忘れないでください。パスワードまたはセッションIDを暗号化することができます。

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

幸運:ここでは一例です!

関連する問題