独自のContentProviderを作成しましたが、それを取得する方法がわかりません。getTypeメソッドを呼び出すときにnullを取得し続けます。
これが私のコードです:
CurrentPlacesMetaDataクラス:
public static final String AUTHORITY = "healthcare.management.elderly.providers.CurrentPlacesContentProvider";
public static final String CONTENT_TYPE_PLACES_LIST = "vnd.android.cursor.dir/vnd.healthcare.places";
public static final String CONTENT_TYPE_PLACES_ONE = "vnd.android.cursor.dir/vnd.healthcare.places#";
CurrentPlacesContentProviderクラス:
public static final Uri CONTENT_URI = Uri.parse("content://"
+ CurrentPlacesMetaData.AUTHORITY + "/currentplaces");
static {
sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
sUriMatcher.addURI(CurrentPlacesMetaData.AUTHORITY, "places", PLACES_TYPE_LIST);
sUriMatcher.addURI(CurrentPlacesMetaData.AUTHORITY, "places/#", PLACES_TYPE_ONE);
}
@Override
public String getType(Uri uri) {
switch(sUriMatcher.match(uri)) {
case PLACES_TYPE_LIST:
return CurrentPlacesMetaData.CONTENT_TYPE_PLACES_LIST;
case PLACES_TYPE_ONE:
return CurrentPlacesMetaData.CONTENT_TYPE_PLACES_ONE;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
}
ContentProviderを呼び出そうとするメソッド:
Uri uri = Uri.parse("content://healthcare.management.elderly.providers.CurrentPlacesContentProvider/currentplaces/places");
String str = context.getContentResolver().getType(uri)
strのnullを取得します。これは、おそらくuriが認識されていないことを示しています。それで、私はどこで間違ったのですか?前もって感謝します!