私と同じ制限を求める投稿は見つかりませんでした。
コンテンツ プロバイダー (メイン アプリケーションと呼びます) を他のアプリケーション (クライアント アプリケーションと呼びます) に提供するアプリケーションがあります。クライアント アプリケーションからコンテンツ プロバイダーへのアクセスを制限して、挿入メソッドとおそらくクエリメソッドのみをサポートしたいと考えています。
私が望まないもの:
- 主な目的はクライアント アプリケーションにデータベースを提供することであるため、コンテンツ プロバイダーをプライベートにします。
- メイン アプリケーション プラットフォームを使用するクライアント アプリケーションは誰でも作成できる必要があるため、クライアント アプリケーションのシグネチャでアクセスを制限します。
私が考える最も明白な解決策は、2 つのコンテンツ プロバイダーを作成することです。しかし、これは間違いなく適切な方法ではないと思います。
このGoogleグループの投稿Binder.getCallingUid()
によると、コンテンツプロバイダーの呼び出しで使用して、呼び出しがメインアプリケーションからのものかどうかを検出することを考えています。そのため、呼び出しがメイン アプリケーションからのものでない場合、updateメソッドとdeleteメソッドでは何もできません。
比較するメイン アプリケーションのUIDを取得するにはどうすればよいですか? 可能であれば、このソリューションは安全ですか?
アドバイスありがとうございます。