8

デバイス メモリから 2 つ以上のアプリケーション間でデータを共有するエンタープライズ環境向けのアプリケーション フレームワークを作成しています。このデータはデバイスに保存する必要があり、少数のアプリケーションのみがアクセスできる必要があります (アプリケーションのインストールに使用される証明書によって識別できます)。また、他のサードパーティ製アプリケーションからアクセスできないように、安全な方法で保存する必要があります。この機能を実装する最良の方法はどれですか?

私の理解では、このプロセスを容易にするだけのContentProvidersContentResolversについて読みました。データの実際のストレージはより重要です。また、達成する必要があるものに最も近いと思われる AndroidのKeychain APIも調べました。

ContentProvidersContentResolversを Keychain APIと統合する方法はありますか? これは正しい方法ですか?そうでない場合、同じことを達成するための最良の方法は何ですか? また、 Keychain APIの機能を完全に理解するための適切なコード サンプルを見つけることができませんでした。助けてください!

編集:Keystore API
も見ました。これは内部的にキーチェーン API を使用し、アプリケーション間でデータを共有するには、キーチェーンを使用する必要があります。キーチェーン API の使用方法に関する同じ、または詳細なドキュメントまたは API ガイドのコード サンプルを見つけることができませんでしたが。iOS Keychainに相当する Android を探しています。

Android 5 では、マネージド プロファイルと呼ばれるものも導入されました。これは私がやろうとしていることを達成する正しい方法ですか?

4

1 に答える 1

1

sharedUserId次のように、同じ でアプリケーションを宣言する必要があります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mydomains.myapp"
    android:sharedUserId="com.mydomains.shared.user.id"
    android:sharedUserLabel="@string/appName">

この場合、両方のアプリのプライベート ストレージに保存されているすべてのデータが相互に利用可能になります (同じ署名で署名されている場合)。

読んだマニュアルとして:

sharedUserId: 他のアプリケーションと共有される Linux ユーザー ID の名前。デフォルトでは、Android は各アプリケーションに固有のユーザー ID を割り当てます。ただし、この属性が 2 つ以上のアプリケーションで同じ値に設定されている場合、同じ証明書によって署名されている場合、それらはすべて同じ ID を共有します。同じユーザー ID を持つアプリケーションは、互いのデータにアクセスでき、必要に応じて同じプロセスで実行できます。

于 2016-03-30T08:03:31.887 に答える