Ich versuche, Foto von Kamera, Galerie und Google Fotos hochladen. ohne Kamera-Code-Galerie und Google Fotos funktioniert ordnungsgemäß, aber wenn ich den Code für die Kamera Intent gibt nicht das Ergebnis als -1 und Galerie und Google Fotos ist auch nicht richtig funktioniert :: es kopiert das Bild in einen anderen Ordner aber müssen Sie die App verlassen, um das Bild in der Bildansicht erneut anzuzeigen. hier ist mein CodeKamera und Galerie Absicht, Bild und Kopie in einem anderen Ordner in Android
final CharSequence[] options = { "Take Photo", "Choose from Gallery","Cancel" };
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select Picture");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals("Take Photo"))
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
imageUri = getImageUri();
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
// Intent cameraIntent = getCameraIntent();
startActivityForResult(cameraIntent, 2);
}
else if (options[item].equals("Choose from Gallery"))
{
if (Build.VERSION.SDK_INT <= 19) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
} else if (Build.VERSION.SDK_INT > 19) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
}
else if (options[item].equals("Cancel")) {
dialog.dismiss();
}
}
});
builder.show();
hier ist der Code für das Aktivitätsergebnis
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
String selectedImagePath=null;
if (requestCode == PICK_IMAGE_REQUEST && resultCode == getActivity().RESULT_OK && null != data) {
Uri selectedImageUri = data.getData();
selectedImagePath = getRealPathFromURIForGallery(selectedImageUri);
decodeFile(selectedImagePath);
}else if(requestCode==2&&resultCode==getActivity().RESULT_OK &&data!=null){
Uri selectedImageUri = data.getData();
selectedImagePath = getRealPathFromURIForGallery(selectedImageUri);
decodeFile(selectedImagePath);
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
Log.d("uri",selectedImagePath+":"+selectedImageUri);
}
}
Code, um das Bild
try {
File sd = Environment.getExternalStorageDirectory();
File directory = Environment.getExternalStorageDirectory();
String destinationPath = Environment.getExternalStorageDirectory().toString() + "/IASFolders/"+Configuration.empcode+".jpg";
if (sd.canWrite()) {
File source= finalFile;
File destination= new File(destinationPath);
if (source.exists()) {
FileChannel src = new FileInputStream(source).getChannel();
FileChannel dst = new FileOutputStream(destination).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}else {
FileChannel src = new FileInputStream(source).getChannel();
FileChannel dst = new FileOutputStream(destination).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
}
catch (Exception e) {
e.printStackTrace();
}
nach dst.close() ist es immer, aber nicht kopieren zu kopieren alles
Dank Es arbeitet für Bild auswählen und ich auch den Weg bekommen, aber nicht in der Lage, das Bild zu kopieren. Siehe den aktualisierten Code zum Kopieren des Bildes –
Was ist getActivity(); Hier –