Я запускаю галерею через намерение, иначе возникнет проблема с отображением галереи в виде сетки.
Но я хочу фактический путь SD-карты изображения, которое я выбрал из галереи, открытой намерением.
вот код ..
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/jpg");
photoPickerIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Pictures/image.jpg"));
startActivityForResult(photoPickerIntent, 1);
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_CANCELED) {
showToast(this,"Activity cancelled");
return;
}
else if(resultCode == RESULT_OK) {
System.out.println("requestCode--"+requestCode);
System.out.println("resultCode--"+resultCode);
System.out.println("data--"+intent.getData());
Uri uri = intent.getData();
String data = uri.getPath();
System.out.println("uri.getPath()--"+uri.getPath());
System.out.println("type--"+intent.getType());
System.out.println("path--"+Environment.getExternalStorageState());
return;
}
switch (requestCode) {
case CAMERA_ACTIVITY:
Bundle b = intent.getExtras();
Bitmap bm = (Bitmap) b.get("data");
// mImageView.setImageBitmap(bm); // Display image in the View
// large image?
if (b.containsKey(MediaStore.EXTRA_OUTPUT)) { // large image?
Log.i(TAG, "This is a large image");
showToast(this,"Large image");
// Should have to do nothing for big images -- should already saved in MediaStore ... but
MediaStore.Images.Media.insertImage(getContentResolver(), bm, null, null);
}
else {
Log.i(TAG, "This is a small image");
showToast(this,"Small image");
MediaStore.Images.Media.insertImage(getContentResolver(), bm, null, null);
}
break;
}
}
}
Я получаю все данные от объекта намерения. Но я хочу, чтобы путь SD-карты для изображения, который я выбираю, чтобы загрузить это изображение на сервер ..
как мне это получить?