Android: галерея изображений поделиться с приложением - PullRequest
2 голосов
/ 31 октября 2010

У меня есть приложение, которое принимает изображения из галереи изображений (через меню общего доступа). Мое приложение запускается, и я делаю это:

    Bundle bundle = getIntent().getExtras();
    Object obj = bundle.get("android.intent.extra.STREAM");

Во время отладки Eclipse сообщает, что объект obj имеет тип 'Uri @ StringUri' (???), и внутри него где-то находится строка 'content: // media / external / images / media / 992'. Кто-нибудь знает, что это за объект obj, чтобы я мог его настроить? И о чем эта строка? IE, как мне добраться до данных изображения?

1 Ответ

2 голосов
/ 31 октября 2010

Это тип Uri, универсальный идентификатор ресурса.

content://media/external/images/media/992 - это URI изображения. Чтобы превратить его в прямой путь файловой системы, передайте URI этому методу, который я нашел в другом месте на этом сайте:

// Convert the image URI to the direct file system path of the image file
 public String getRealPathFromURI(Uri contentUri) {

    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery( contentUri,
            proj, // Which columns to return
            null,       // WHERE clause; which rows to return (all rows)
            null,       // WHERE clause selection arguments (none)
            null); // Order-by clause (ascending by name)
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();

    return cursor.getString(column_index);
 }
...