D'activité de la caméra retourner null android

Je suis la construction d'une application où je veux capturer une image par la caméra par défaut de l'activité et de retourner à mes activités et de charger cette image dans une ImageView. Le problème, c'est une activité de la caméra retourne toujours null. Dans mon onActivityResult(int requestCode, int resultCode, Intent data) méthode que je suis l'obtention de données comme null. Voici mon code:

public class CameraCapture extends Activity {
protected boolean _taken = true;
File sdImageMainDirectory;
Uri outputFileUri;
protected static final String PHOTO_TAKEN = "photo_taken";
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);   
setContentView(R.layout.cameracapturedimage);
File root = new File(Environment
.getExternalStorageDirectory()
+ File.separator + "myDir" + File.separator);
root.mkdirs();
sdImageMainDirectory = new File(root, "myPicName");
startCameraActivity();
} catch (Exception e) {
finish();
Toast.makeText(this, "Error occured. Please try again later.",
Toast.LENGTH_SHORT).show();
}
}
protected void startCameraActivity() {
outputFileUri = Uri.fromFile(sdImageMainDirectory);
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE:
{
if(resultCode==Activity.RESULT_OK)
{
try{
ImageView imageView=(ImageView)findViewById(R.id.cameraImage);
imageView.setImageBitmap((Bitmap) data.getExtras().get("data"));
}
catch (Exception e) {
//TODO: handle exception
}
}
break;
}
default:
break;
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState.getBoolean(CameraCapture.PHOTO_TAKEN)) {
_taken = true;
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean(CameraCapture.PHOTO_TAKEN, _taken);
}
}

Je fais quelque chose de mal?

  • est la sdcard monté? où u en mesure de voir l'image 'myPicName'? et u ont les autorisations dans le manifeste? <uses-permission android:name="android.la permission.WRITE_EXTERNAL_STORAGE" />
  • Je peux voir le fichier dans le ddms tandis que le débogage usb. Et j'ai aussi donné la permission. Si j'utilise outputFileUri au lieu de données lors du chargement de l'image dans l'imageview il fonctionne. Cela signifie que la caméra capture l'image, mais pourquoi je suis null en paramètre de données de onactivityresult() la méthode
  • est-ce un téléphone Samsung?
InformationsquelleAutor rawcoder064 | 2011-08-08