2

私はアンドロイドが初めてです。私はコンテンツの提供と解決に1つの疑問があります。私は自分のカスタムコンテンツプロバイダのアプリを持っていて、別のアプリからそのデータベースにアクセスしたいと思います。私はuriを作成し、マニフェストでauthorizeを与えました。 ContentValuesオブジェクトを作成する必要があり、データを挿入する際に列名が必要なので、解決ツールの他のアプリケーションから新しい値を挿入すると、contentProviderの列名はどのように分かりますか...コンテンツプロバイダのデータベースの列名を知る方法別のアプリケーションから[コンテンツリゾルバ]

答えて

1

サードパーティのアプリケーションContentProviderを公開している場合は、アクセスする方法に関するドキュメントが用意されているはずです。そうでない場合は、アプリケーションの著者に連絡してください。

それ以外の場合は、同じコンテンツプロバイダのデータを照会するnull投影を使用して、取得するカーソルのすべての列を印刷できます。

ContentProvider
1

の実装における標準的なアプローチは、(このContentProviderエクスポートか否か)ContentProviderとの通信に必要なすべての情報をカプセル化する追加の「契約」クラスを作成することです。

ContentProviderに他のアプリケーションからアクセスする必要がある場合は、そのアプリケーションをエクスポートして、それぞれの「契約」クラスをクライアントに公開します(例:ウェブサイト上にJavaDocを公開する、メールで送信するなど)。

AOSPで見つかった「契約」クラスの例はContactsContractクラスです。そのJavaDocはhereとして公開されています。その出所はhereです。

関連する問題