2012-09-18 4 views
5

私はIntents経由でカメラを使用する簡単なAndroidアプリを立ち上げようとしています。コードはAndroid documentation hereからかなりまっすぐですが、それは私のために働いていません。AndroidカメラインテントがRESULT_OKのケースで返されない

startActivityForResult()の呼び出し後にカメラのアプリケーションが正常に開きますが、写真を撮った後で元の状態に戻ります(?!)。具体的には、写真を撮って受け入れアイコン(ギャラクシーネクサスのチェックマーク)を選択した後は返されません。しかし、私はキャンセルアイコン(同じ電話機で「X」)を選択した後に戻ります。

は、ここでは、コードです(注、私は断片ではなく、Activityから働いている):

@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

関連する問題