[android] 요약 : Camera Intent를 사용하여 사진을 찍고 올바른 방향으로 사진을 표시합니다 (모든 장치에서 잘 작동 함).


Answers

Sony Xperia Go, 삼성 Galaxy SII, Samsung Galaxy SIII mini 및 모든 장치에서 작동하는 Samsung Galaxy Y로이 코드를 테스트했습니다!

그러나 LG E400 (2.3.6)에서는 작동하지 않았고 갤러리에서 두 장의 사진을 얻습니다. 그래서 void startCameraIntent ()에 manufacturer.contains ( "lge")를 추가하고 문제를 수정했습니다.

if(!(manufacturer.contains("samsung")) && !(manufacturer.contains("sony")) && !(manufacturer.contains("lge"))) {
    String filename = System.currentTimeMillis() + ".jpg";
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, filename);
    cameraPicUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraPicUri);
}
Question

그것은 세계에서 가장 간단한 것 같습니다 : 기본 카메라 활동을 사용하여 안드로이드 애플 리케이션 내에서 사진을 찍어. 그러나 및 웹에서 여러 게시물에 포함 된 함정이 많이 있습니다. 예를 들어 Null Intents가 전달되고 그림의 방향이 정확하지 않거나 OutOfMemoryErrors입니다.

내가 할 수있는 해결책을 찾고있다.

  1. 카메라 의도를 통해 카메라 활동을 시작하고,
  2. 사진의 Uri 검색
  3. 사진의 올바른 방향을 검색하십시오.

또한, 나는 가능한 한 멀리 장치 구성 (제조 업체, 모델, OS 버전) 특정 구현을 피하기 위해 싶습니다. 그래서 나는 궁금해 : 이것을 달성하는 가장 좋은 방법은 무엇입니까?




Sony Xperia Z5에서이 기능을 사용할 때 몇 가지 문제가 발생합니다.

나는 이것을 추가했고 훨씬 나아졌다.

if (buildType.contains("sony")&& buildDevice.contains("e5823")) {
                setPreDefinedCameraUri = true;}

그러나 22 번 중 4 번은 카메라를 다시 시작한 후 2 번 다시 시작했습니다. 모든 테스트로 인해 앱이 다시 시작되었습니다. 이 문제를 해결할 수있는 방법이 있습니까? 아니면이 결과를 받아 들일 수 있습니까?

문제는 카메라가 다시 시작되면 뒤로 버튼을 두 번 누르고 붐을 일으킬 수 있다는 것입니다. 이미지가 내 Imageview에 저장되어 저장됩니다.






Related