0

次の URI 設定があります。

public static final String AUTHORITY = "content://com.danny.servercontentprovider";
// Query URI
private static final int SERVER = 100;
private static final int SERVER_ID = 101;
// Create URI matcher
private static final UriMatcher sURIMatcher = new UriMatcher(
        UriMatcher.NO_MATCH);

static {
    sURIMatcher.addURI(AUTHORITY, "server", SERVER);
    sURIMatcher
            .addURI(AUTHORITY, "server/#", SERVER_ID);
}

しかし、コンテンツプロバイダーを呼び出すと、両方の uri が一致しません:

int uriType = sURIMatcher.match(uri);
switch (uriType) {
case SERVER_ID:
    Log.d(TAG, "A server URI");
    break;
case SERVER:
    // no filter
    Log.d(TAG, "All server URI");
    break;
default:
    Log.i(TAG, "Unknown URI on query: " + uri);
    // throw new IllegalArgumentException("Unknown URI");
}

ログメッセージ:

I/ServerContentProvider(442): Unknown URI on query: content://com.danny.servercontentprovider/server/1

数値以外の uri を試してみると、同じエラー メッセージが表示されます (ログ メッセージに "/1" が含まれていません)。

何か案は?

4

1 に答える 1

1

の値を次のように変更AUTHORITYします。

public static final String AUTHORITY = "com.danny.servercontentprovider";
于 2012-12-01T18:24:34.043 に答える