1

同様の質問が以前に投稿されたことは知っていますが、私の正確なユースケースに対する答えはなかったと思います。

Androidアプリの試用版とフルバージョンがあります。ユーザーがフルバージョンを購入するときは、両方のバージョンで設定を共有する必要があります。1つのアプリでの変更は、他のアプリにも表示されます。一方のアプリがアンインストールされると、設定はもう一方のアプリのために保持されます。ユーザーが試用アプリをアンインストールせず、引き続き使用できる可能性があるため、これは1回限りのインポートではありません。

両方のアプリは同じ共有ユーザーIDを使用し、同じプロセスで実行されます。ただし、getFilesDir()を呼び出すと、返されるディレクトリにアプリのパッケージ名が含まれているため、2つのアプリで使用されるファイルを保存するためのディレクトリが異なります。外部ストレージを使用せずに、両方のアプリでまったく同じファイルを使用するにはどうすればよいですか?

4

2 に答える 2

0

外部ストレージを使用せずに、両方のアプリでまったく同じファイルを使用するにはどうすればよいですか?

それはあなたの目的を達成しません:

一方のアプリがアンインストールされた場合、設定はもう一方のアプリのために保持されます。

その目的を考えると、定義上、ユーザーがそのアプリをアンインストールしたかのように、アンインストール時に削除される単一のファイルを使用することはできません。他のアプリは壊れています。

あなたの選択は次のとおりです。

  1. 外部ストレージを使用します。具体的に getExternalFilesDir()、またはgetExternalCacheDir()、または

  2. 変更の同期を維持するための何らかのメカニズムを使用して、各アプリにファイルの独自のコピーを維持させる、または

  3. アプリ内購入に切り替えて、無料/有料のアプリを個別に用意しないようにします。

  4. 「両方のアプリが設定を共有する必要がある」という目的を放棄する

于 2013-03-18T16:40:47.607 に答える
0

すべてのコンポーネントを含むプロセスを閉じた後もそれらを残したい場合は、これらの設定をファイルまたはデータベースに保存する必要があります。

これを制御できる場合の簡単な方法は、アプリケーションのすべてのuidを同じに変更し、ファイルまたはデータベースからの読み取りと書き込みにファイルAPIを使用することです。ただし、データベースを使用することは、コンテンツプロバイダーを使用することからほんの一歩です...これはおそらく最も正しい解決策です。

于 2013-03-18T16:41:22.937 に答える