複数のアプリケーション(アクティビティ?)がアクセスできるように、カスタムContentProviderを作成しようとしています。これを行う方法についていくつか質問がありますが、
それがContentProviderであることをコードで宣言するにはどうすればよいですか?他のアプリケーション(アクティビティ?)はContentProviderをどのように使用またはインポートしますか?
複数のアプリケーション(アクティビティ?)がアクセスできるように、カスタムContentProviderを作成しようとしています。これを行う方法についていくつか質問がありますが、
それがContentProviderであることをコードで宣言するにはどうすればよいですか?他のアプリケーション(アクティビティ?)はContentProviderをどのように使用またはインポートしますか?
コンテンツプロバイダーに関する広範な開発者ガイドのトピックとは別に、独自のコンテンツプロバイダーの作成に関する情報については、メモ帳のチュートリアルとメモ帳のサンプルコードを参照してください。
コンテンツを提供するアプリケーションのマニフェストでは、次のようになります。
<provider android:name="Inventory" android:authorities="com.package.name.Inventory" />
そして、コンテンツを取得するアプリケーションで
String inventoryItem = "dunno";
try {
Uri getItem = Uri.parse(
"content://com.package.name.Inventory/database_items");
String[] projection = new String[] { "text" };
Cursor cursor = managedQuery(getItem, projection, null, null, null);
if (null != cursor && cursor.moveToNext()) {
int index = cursor.getColumnIndex("text");
inventoryItem = cursor.getString(index));
}
cursor.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
外部プログラムでは、これはitem_socksの下にリストされているアイテムを返しますが、これはその名前でリストされているアイテムを1つだけ持つ一般的な例にすぎません。次のようなdatabase_itemsという名前のデータベーステーブルをクエリします。
id | タイトル| 文章
1 | item_socks | ブラウンペアレッドストライプ
その場合、inventoryItemは「茶色のペアの赤いストライプ」と等しくなります。