크롬 공유하기로 이미지 가져왔을때 SecuriyException 문제
이미지 공유하기를 선택하여 앱으로 가져오고 싶습니다.
익스플로러에서 이미지 공유하기로 가져오면 잘 되는데
크롬에서 이미지 공유하기를 선택하여 앱으로 가져오면 SecuriyException 이 납니다.
java.lang.SecurityException: Permission Denial: opening provider org.chromium.chrome.browser.util.CompatibilityFileProvider
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE
퍼미션 사용자 권한도 받은상태입니다.
private void test(){
String url = "content://com.android.chrome.FileProvider/images/screenshot/1481679048175-1404337754.jpg";
Uri uri = getConvertUri(Uri.parse(url));
Log.d("TEST"," uri : "+uri.getPath());
}
private Uri getConvertUri(Uri imageUri){
Log.d("TEST","getConvertUri() imageUri ==>"+imageUri);
//getIntent().setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
try {
//임시파일로 저장하고 파일 경로를 에디터로 던진다.
File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpeg");
ContentResolver aaaa = getContentResolver();
InputStream inputStream = aaaa.openInputStream(imageUri);
if (inputStream != null) {
OutputStream outStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0) {
outStream.write(buf, 0, len);
}
outStream.close();
inputStream.close();
if (file.length() > 0) {
return new Uri.Builder().scheme("file").path(file.getAbsolutePath()).build();
}
}
}catch(Exception e){
Log.d("TEST","getConvertUri() IOException ==>"+ e.toString());
e.printStackTrace();
}
return null;
}