web-dev-qa-db-fra.com

Problème obsolète de ManagedQuery ()

J'ai cette méthode:

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

Malheureusement, le compilateur me montre un problème sur:

Cursor cursor = managedQuery(contentUri, proj, null, null, null);

Parce que managedQuery() est obsolète.

Comment pourrais-je réécrire cette méthode sans utiliser managedQuery()?

102
AndreaF

Vous pouvez le remplacer par context.getContentResolver().query et LoaderManager (vous devrez utiliser le package de compatibilité pour prendre en charge les périphériques antérieurs à la version 11 de l'API).

Cependant, il semble que vous n'utilisiez la requête qu'une seule fois: vous n'en avez probablement même pas besoin. Peut-être que cela fonctionnerait?

public String getRealPathFromURI(Uri contentUri) {
    String res = null;
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
    if(cursor.moveToFirst()){;
       int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
       res = cursor.getString(column_index);
    }
    cursor.close();
    return res;
}
249
Femi
public void getBrowserHist(Context context) {
        Cursor mCur = context.getContentResolver().query(Browser.BOOKMARKS_URI,
                Browser.HISTORY_PROJECTION, null, null, null);
        mCur.moveToFirst();
        if (mCur != null && mCur.moveToFirst() && mCur.getCount() > 0) {
            while (mCur.isAfterLast() == false) {
                Log.e("hist_titleIdx",
                        mCur.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX));
                Log.e("hist_urlIdx",
                        mCur.getString(Browser.HISTORY_PROJECTION_URL_INDEX));
                mCur.moveToNext();
            }
        }
    }
3
PrvN