この場合、SharedPreferences を使用できますか?
いいえ。
SharedPreferences を任意の場所に書き込むことはできません。あなたができる最善のことは、常にインストールされている1つの中心的なアプリ(「ローダー」や「メインメニュー」など)を持つことです. その後、他のすべてのアプリは中央アプリの設定スペースを使用して、(createPackageContext を介して) 設定を保存および共有できます。ただし、createPackageContext は、実際にインストールされていないパッケージでは機能しません (たとえば、「com.mystuff.centralstorage」は、任意の名前ではなく、実際にインストールされたパッケージでなければなりません)。
この場合、おそらく最善の解決策は、Java スタイルの SD カード上の共有ファイルです。以下を参照してください: FileInputStream、FileOutputStream、DataInputStream、および DataOutputStream を参照してください。また、SD カードのルートへのパスの Environment.getExternalStorageDirectory.getAbsolutePath (実際、これは、ファイルを処理するために必要な唯一の Android コードです。残りは Java だけでかまいません)。
Android ContentProvider は、個々のアプリを対象としているようです。(上記のように、SharedPerferences を使用して) 共有が許可されていますが、すべてのアプリが独自のプライベートな世界に存在し、それらの間で共有される Android の「サンドボックス」の概念を取り入れているように見えますが、これはここでは望ましくありません。このソリューションには、任意の数のアプリからグローバルにアクセスできるものが必要です。これは、SD カード上の通常の古いファイルです。
(マルチプロセスに適したファイル保護スキームは、考慮すべきもう 1 つのことです。)