현재
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
try {
System.out.println("고양이10");
InputStream in = getContentResolver().openInputStream(data.getData());
Bitmap img = BitmapFactory.decodeStream(in);
in.close();
Uri img_link = data.getData();
System.out.println("고양" + getRealPathFromURI(img_link));
img_url = img_link.getPath();
//String ims = getRealPathFromURI(img_link);
//getRealImagePath(img_link);
} catch (Exception e) {
}
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "사진 선택 취소", Toast.LENGTH_LONG).show();
}
}
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private String getRealPathFromURI(Uri contentUri)
{
if (contentUri.getPath().startsWith("/storage"))
{
return contentUri.getPath();
}
String id = DocumentsContract.getDocumentId(contentUri).split(":")[1];
String[] columns = { MediaStore.Files.FileColumns.DATA };
String selection = MediaStore.Files.FileColumns._ID + " = " + id;Cursor cursor = getContentResolver().query(MediaStore.Files.getContentUri("external"), columns, selection, null, null);
try {int columnIndex = cursor.getColumnIndex(columns[0]); if (cursor.moveToFirst())
{
return cursor.getString(columnIndex);
}
}
finally {cursor.close();
}
return null;
}
위의 갤러리에서 이미지를 선택하면 그 이미지의 uri를 구하고 그것으로 절대경로를 구하고싶은데 retrun하는 값이 계속 null로만 나오더라고요. 이게 이미지를 가져오는 방식에서 잘못된건가요>
manifest는
<uses-permission android:name="android.permission"/>
<uses-permission android:name="android.permission.INTERNET" />
users-permission을 이렇게 중복해서 써도 괜찮나요>