2011-06-03 11 views
9

Hay una recomendación clara en la documentación para definir todos los uris al implementar ContentProvider. Pero estoy confundido con la parte URI de coincidencias: por ejemplo, tengo paquete org.company.example, tabla denominada 'artículos', entonces yo definoproveedor de contenido URI matcher

public static final Uri CONTENT_URI = 
    Uri.parse("content://org.company.example.sampleprovider/items"); 

Y qué parte autoridad debería utilizar para hacer coincidir los URI en init estática:

private static final UriMatcher uriMatcher; 

    static { 
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    uriMatcher.addURI("what goes here?", "items", ITEM); 
    uriMatcher.addURI("what goes here?", "items/#", ITEM_ID); 
    } 

Respuesta

14
public static final String PROVIDER_NAME = "org.company.example.sampleprovider"; 
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME); 
private static final UriMatcher uriMatcher; 
static { 
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    uriMatcher.addURI(PROVIDER_NAME, "items", ITEM); 
    uriMatcher.addURI(PROVIDER_NAME, "items/#", ITEM_ID); 
} 
+0

no debe contener mi CONTENT_URI camino a la mesa? –

+1

No es necesario, pero es posible. Es para que usted decida. Mis proveedores de contenido ya están nombrados como "BooksProvider", por lo que no es necesario que agregue los "/ books" adicionales para aclararle al usuario lo que hace el proveedor. –

Cuestiones relacionadas