2012-09-18 2 views
5

인 텐트를 통해 카메라를 사용하는 간단한 안드로이드 앱을 세우려고합니다. 코드는 Android documentation here에서 거의 똑바로 나오지만 작동하지 않습니다.안드로이드 카메라 인 텐트가 RESULT_OK 경우에 반환되지 않습니다.

startActivityForResult() 호출 후 카메라 응용 프로그램이 예상대로 열리지 만 그림을 찍은 후에는 절대 반환되지 않습니다 (!). 특히, 사진을 찍은 다음 수락 아이콘 (Galaxy Nexus의 체크 표시)을 선택하면 반환되지 않습니다. 하지만 취소 아이콘 (동일한 전화에서 'X')을 선택하면 돌아갑니다.

여기에 코드입니다 (참고, 나는 조각이 아닌 활동에서 일하고 있어요) :

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.my_layout, container, false); 

    final Button btnCamera = (Button) view.findViewById(R.id.cameraid); 

    View.OnClickListener handler = new View.OnClickListener() { 
     public void onClick(View v) { 
      if (v == btnCamera) { 
       Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

       // create a file to save the image 
       File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
       imagesFolder.mkdirs(); 
       File image = new File(imagesFolder, "image_001.jpg"); 
       Uri uriSavedImage = Uri.fromFile(image); 

       // start the image capture Intent 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
       startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
      } 
     } 
    } 
    btnCamera.setOnClickListener(handler); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
     if (resultCode == Activity.RESULT_OK) { 
      // Image captured and saved to fileUri specified in the Intent 
      Toast.makeText(getActivity(), "Image saved to:\n" + 
        data.getData(), Toast.LENGTH_LONG).show(); 
     } 
     else if (resultCode == Activity.RESULT_CANCELED) { 
      // User cancelled the image capture 
     } else { 
      // Image capture failed, advise user 
     } 
    } 

내가이 일을하려면 어떤 부분을 변경해야하나요? 감사. 내가 실수로 앱이 외부 카메라 응용 프로그램에 의존하는 경우이 라인이 필요하지라고 생각

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.CAMERA"/> 

: 나는 매니페스트 라인을 추가 할 때

답변

12

아차, 그것은했다. 그러나 나는 그것에 대해 틀렸다! 감사.

+0

감사합니다 딜런, - 할 것입니다. – gcl1

관련 문제