앱 내에서 사진 앱을 사용하여 촬영 후 사진 자르기 또는 앨범에서 불러온 후 사진 자르기를 시도하는데
안드로이드 7.0에서 시도할 때 구글 포토앱이 중지되었습니다 라고 나오면서 실행이 안되네요
사진 촬영까지는 잘됩니다.
사진 촬영과 앨범에서 가져오는 코드는
private void doTakePhotoAction()
{
Log.d(tag,"사진1");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 임시로 사용할 파일의 경로를 생성
String url = "tmp.jpg";
mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
try{
startActivityForResult(intent, PICK_FROM_CAMERA);
}catch (SecurityException e) {
if (checker.lacksPermissions(PERMISSIONS)) {
startPermissionsActivity();
}
e.printStackTrace();
if(language.equals("en") || language.equals("th") || language.equals("vi"))
Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();
else
Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();
}
}
private void doTakeAlbumAction()
{
// 앨범 호출
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
startActivityForResult(intent, PICK_FROM_ALBUM);
}
이렇게 되어있습니다.
그런데 로그를 보니 제 앱에서 에러가 난게 아닌것 같습니다.
10-07 12:33:34.035: D/AndroidRuntime(14626): Shutting down VM
10-07 12:33:34.063: E/AndroidRuntime(14626): FATAL EXCEPTION: main
10-07 12:33:34.063: E/AndroidRuntime(14626): Process: com.google.android.apps.photos, PID: 14626
10-07 12:33:34.063: E/AndroidRuntime(14626): android.os.FileUriExposedException: file:///storage/emulated/0/tmp.jpg exposed beyond app through Intent.getData()
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.os.StrictMode.onFileUriExposed(StrictMode.java:1799)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.net.Uri.checkFileUriExposed(Uri.java:2346)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.content.Intent.prepareToLeaveProcess(Intent.java:8933)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.content.Intent.prepareToLeaveProcess(Intent.java:8894)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1517)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.app.Activity.startActivityForResult(Activity.java:4224)
10-07 12:33:34.063: E/AndroidRuntime(14626): at db.startActivityForResult(PG:48)
10-07 12:33:34.063: E/AndroidRuntime(14626): at di.startActivityForResult(PG:75)
10-07 12:33:34.063: E/AndroidRuntime(14626): at vbg.startActivityForResult(PG:205)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.app.Activity.startActivityForResult(Activity.java:4183)
10-07 12:33:34.063: E/AndroidRuntime(14626): at di.startActivityForResult(PG:856)
10-07 12:33:34.063: E/AndroidRuntime(14626): at vbg.startActivityForResult(PG:196)
10-07 12:33:34.063: E/AndroidRuntime(14626): at gv.handleMessage(PG:1468)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.os.Handler.dispatchMessage(Handler.java:102)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.os.Looper.loop(Looper.java:154)
10-07 12:33:34.063: E/AndroidRuntime(14626): at android.app.ActivityThread.main(ActivityThread.java:6077)
10-07 12:33:34.063: E/AndroidRuntime(14626): at java.lang.reflect.Method.invoke(Native Method)
10-07 12:33:34.063: E/AndroidRuntime(14626): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
10-07 12:33:34.063: E/AndroidRuntime(14626): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
10-07 12:33:34.084: W/ActivityManager(585): Force finishing activity com.google.android.apps.photos/.photoeditor.intents.EditActivity
10-07 12:33:34.146: W/MdnsClient_Cast(13051): #acquireLock. Multicast lock not held. Acquiring. Subtypes:"96084372"
10-07 12:33:34.506: I/art(585): Background partial concurrent mark sweep GC freed 32825(2MB) AllocSpace objects, 2(1048KB) LOS objects, 33% free, 18MB/27MB, paused 7.123ms total 258.125ms
누가 올라간 폰도 없어서 문제찾기가 어렵네요. 도움 부탁드립니다.