J'essaie de prendre des photos à partir de sdcard et cela fonctionne au cas où l'utilisateur sélectionne google photos mais donne une erreur curserindexofofbound lorsqu'il est sélectionné dans n'importe quelle autre application ou gestionnaire de fichiers. voici le morceau de code.Téléchargement de photos depuis Google Photos mais pas depuis la galerie et le gestionnaire de fichiers dans android
onActivity Résultat ` { if (requestCode == PICK_IMAGE_REQUEST & & resultCode == Activity.RESULT_OK & & data = null & & data.getData()! = Null!) { Uri uri = null; Chaîne realPath = null;
try
{
uri = data.getData();
Log.e("uri",uri.toString());
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
imageView.setImageBitmap(bitmap);
String imagePath = getRealPathFromURI(uri);
File source = new File(imagePath);
String destinationPath = Environment.getExternalStorageDirectory().toString() + "/IASFolders/"+Configuration.empcode+".jpg";
File destination = new File(destinationPath);
try
{
InputStream in = new FileInputStream(source.getAbsolutePath());
OutputStream out = new FileOutputStream(destination.getAbsolutePath());
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0)
{
out.write(buf, 0, len);
}
in.close();
out.close();
}
catch (IOException e)
{
e.printStackTrace();
Log.d("File Copy Exception", e.toString());
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
`{function getRealPathFromURI
private String getRealPathFromURI(Uri contentURI) {
String result;
Cursor cursor = getActivity().getContentResolver()
.query(contentURI,new String[]{MediaStore.Images.Media.DATA},MediaStore.Images.Media.DISPLAY_NAME+"=?" ,new String[]{Configuration.empcode},null);
/*
* Cursor imageCursor=getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,new String[]{MediaStore.Images.Media.DATA},MediaStore.Images.Media.DISPLAY_NAME+"=?" ,new String[]{imageTitle},null);
imageCursor.moveToFirst();
String imageData=imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA));
Long imageSize=imageCursor.getLong(imageCursor.getColumnIndex(ImageColumns.SIZE));
Toast.makeText(getApplicationContext(), String.valueOf(imageSize), Toast.LENGTH_LONG).show();*/
if (cursor == null)
{
result = contentURI.getPath();
}
else
{
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
result = cursor.getString(idx);
cursor.close();
}
return result;
}
}`
ce code fonctionne, mais si vous voyez mon code je suis essayer d'obtenir l'image et copier dans un autre dossier thatswhere il donne exception merci –
@MithileshIzardar http://stackoverflow.com/questions/8664440/how-to-copy-image-file-from-gallery-to-another-folder-programatically-in-android .. prendre l'aide de ceci pour une copie supplémentaire du chemin d'image sélectionné –
@MithileshIzardar ou par ceci http://stackoverflow.com/questions/4921183/android-copy-image-from-gallery-folder-onto-sd-card-alternative-folder –