2016-11-05 2 views
0

Dies zeigen die Box mit den Anwendungen, um ein Bild zu wählen oder ein Bild mit der Kamera zu machen. Wenn ich Kamera auswähle, kann ich ein Bild aufnehmen, aber es gibt keine Rückgabe- oder Speicheroption. Ich habe meine Antwort aktualisiert und den Aktivitätsergebniscode gepostet.android - Wählen Absicht

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     switch (requestCode) 
     { 
      case 1: 
       if (data != null) 
       { 
        Log.e("TAG", "Only called when a image from gallery is selected"); 
       } 
       else 
       { 
        Log.e("TAG", "Data is null"); 
       } 
       break; 

     } 
    } 
    private void ChooseImage() 
{ 

    // Create gallery intent 
    Intent _intentGallery = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    _intentGallery.setAction(Intent.ACTION_PICK); 
    _intentGallery.putExtra("return-data", true); 

    // startActivityForResult(_intentGallery, 1); 


    // Create camera intent 
    Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

    // Create chooser 
    Intent chooser = Intent.createChooser(galleryIntent, getString(R.string.choose_an_application)); 

    // Create list of gallery intents 
    List<Intent> galleryIntents = new ArrayList<Intent>(); 

    // Add intents to list 
    PackageManager pm = getApplicationContext().getPackageManager(); 
    for (ResolveInfo ri: pm.queryIntentActivities(_intentGallery, PackageManager.MATCH_DEFAULT_ONLY)) 
    { 
     Intent intent = pm.getLaunchIntentForPackage(ri.activityInfo.packageName); 
     intent.setAction(Intent.ACTION_PICK); 
     intent.putExtra("return-data", true); 
     galleryIntents.add(intent); 
    } 

    // Show dialog 
    chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, galleryIntents.toArray(new Parcelable[] {})); 
    startActivityForResult(chooser, 1); 
} 

Manifest Berechtigungen:

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

Antwort

0

Sie haben onActivityResult zu implementieren. Dann können Sie Daten bekommen.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(imageBitmap); 
    } 
} 

In diesem Fall REQUEST_IMAGE_CAPTURE 1 ist, wie Sie es definiert, so dass es auf 1 ändern uses-feature das Manifest Regel nicht Vergessen Sie.

Weitere Informationen: https://developer.android.com/training/camera/photobasics.html