Diferencia entre revisiones de «Usuario:ManuelRomero/Android»

De WikiEducator
Saltar a: navegación, buscar
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 7: Línea 7:
 
#Desarrollar aplicaciones para dispositivos móviles
 
#Desarrollar aplicaciones para dispositivos móviles
 
#Usando el SDK de android}}
 
#Usando el SDK de android}}
<br>
+
 
 +
*[[/Android/recursos|Recursos]]
 +
*[[/Android/persistencia|Datos persistentes]]
 +
===APP DE LA FOTO===
 +
<source lang = Java>
 +
package com.example.imagenes;
 +
 
 +
 
 +
import java.io.File;
 +
import java.io.FileNotFoundException;
 +
import java.io.FileOutputStream;
 +
import java.io.IOException;
 +
import java.io.OutputStream;
 +
import java.text.SimpleDateFormat;
 +
import java.util.ArrayList;
 +
import java.util.Date;
 +
import java.util.List;
 +
 
 +
import android.app.Activity;
 +
import android.content.Intent;
 +
import android.content.pm.ResolveInfo;
 +
import android.database.Cursor;
 +
import android.graphics.Bitmap;
 +
import android.graphics.BitmapFactory;
 +
import android.net.Uri;
 +
import android.os.Bundle;
 +
import android.os.Environment;
 +
import android.provider.MediaStore;
 +
import android.util.Log;
 +
import android.view.View;
 +
import android.widget.ImageView;
 +
import android.widget.Toast;
 +
 
 +
public class Imagenes extends Activity {
 +
 +
Dialogo mensaje;
 +
Intent intencion;
 +
String ubicacion;
 +
File carpeta;
 +
Uri img;
 +
File foto;
 +
 
 +
 
 +
@Override
 +
protected void onCreate(Bundle savedInstanceState) {
 +
super.onCreate(savedInstanceState);
 +
setContentView(R.layout.activity_main);
 +
 +
// Creamos directorios si no existe para guardar nuestras imágenes
 +
carpeta = new File(Environment.getExternalStorageDirectory()+ File.separator + "Imagenes");
 +
 +
if (!carpeta.exists())
 +
carpeta.mkdirs();
 +
 +
 
 +
}
 +
 
 +
 +
 +
    public void clickImagen(View v){
 +
    //Sacamos un DialogFragemen que me pregunta de donde quiero cargar la imagen
 +
    mensaje = new Dialogo();
 +
    mensaje.show(getFragmentManager(),"mensaje");
 +
   
 +
    }
 +
   
 +
    public void origenFoto(int opcion){
 +
    //Iniciamos la actividad foto
 +
    //DEFINO el intent
 +
    mensaje.dismiss();
 +
  String nombreFoto = obtenerNombre()+".jpg";
 +
    foto = new File(carpeta.toString()+"/"+nombreFoto);
 +
    Log.i("FOTO)","Faile name xxxx = " + foto.toString());
 +
 +
    ubicacion=foto.toString();
 +
    img = Uri.fromFile(foto);
 +
    switch (opcion){
 +
 
 +
    case Constantes.ORIGEN_FOTO_CAMARA:
 +
if (hayBug){
 +
//no paso extras
 +
intencion =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 +
startActivityForResult (intencion, Constantes.OK_FOTO);
 +
}else{
 +
intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
 +
intencion.putExtra("crop","true");
 +
startActivityForResult (intencion, Constantes.OK_FOTO);
 +
 +
}
 +
intencion =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 +
  break;
 +
case Constantes.ORIGEN_FOTO_GALERIA:
 +
intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
 +
intencion.putExtra("crop","true");
 +
startActivityForResult (intencion, Constantes.OK_GALERIA);
 +
break;
 +
/* case Constantes.MIS_FOTOS:
 +
 +
Uri dir = Uri.parse(carpeta.toString());
 +
intencion =new Intent(Intent.ACTION_PICK,dir);
 +
break;
 +
*/
 +
    }
 +
   
 +
  }
 +
   
 +
    //Método captado de http://stackoverflow.com/questions/1910608/android-action-image-capture-intent
 +
    //que evita un bug de android en determinadas versiones
 +
   
 +
    public boolean hasImageCaptureBug() {
 +
 
 +
        // list of known devices that have the bug
 +
        ArrayList<String> devices = new ArrayList<String>();
 +
        devices.add("android-devphone1/dream_devphone/dream");
 +
        devices.add("generic/sdk/generic");
 +
        devices.add("vodafone/vfpioneer/sapphire");
 +
        devices.add("tmobile/kila/dream");
 +
        devices.add("verizon/voles/sholes");
 +
        devices.add("google_ion/google_ion/sapphire");
 +
 
 +
        return devices.contains(android.os.Build.BRAND + "/" + android.os.Build.PRODUCT + "/"
 +
                + android.os.Build.DEVICE);
 +
 
 +
    }
 +
   
 +
    public void tomarFoto(){
 +
    //Preparamos el fichero donde queremos que se almacene
 +
      String nombreFoto = obtenerNombre()+".jpg";
 +
    foto = new File(carpeta.toString()+"/"+nombreFoto);
 +
    Log.i("FOTO)","Faile name xxxx = " + foto.toString());
 +
 +
    ubicacion=foto.toString();
 +
 
 +
   
 +
   
 +
   
 +
    img = Uri.fromFile(foto);
 +
//Volvemos a usar la fución anterior para evitar el bug
 +
//Si no hay bug ponemos ya la ubicación de la foto
 +
if (hasImageCaptureBug()) {
 +
Log.i("FOTO","antes de intencion hay bug up");
 +
// intencion.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 +
 
 +
} else {
 +
intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
 +
intencion.putExtra("crop","true");
 +
 
 +
    Log.i("FOTO","antes de intencion NOOO  bug up");
 +
}
 +
 +
startActivityForResult(intencion , Constantes.OK_FOTO);
 +
Log.i("tomarFoto","vengo de tomar una foto");
 +
//Log.i("tomarFoto","imagen guardada en "+fileName);
 +
   
 +
 +
 +
}
 +
 
 +
   
 +
private String obtenerNombre() {
 +
// TODO Auto-generated method stub
 +
 +
SimpleDateFormat  fechaFormato = new SimpleDateFormat("yyyy_mm_dd_hh_mm_ss"); 
 +
Date date = new Date(); 
 +
String nombreFecha = fechaFormato.format(date);
 +
return nombreFecha;
 +
}
 +
 
 +
 
 +
 +
 
 +
 
 +
protected void OnActivityResult(int respuesta, int resultado, Intent data) {
 +
// TODO Auto-generated method stub
 +
ImageView imagen = ((ImageView)findViewById(R.id.Imagen));
 +
super.onActivityResult(respuesta, resultado, data);
 +
Log.i("FOTO","Códigos devueltos: respuesta: "+respuesta+"Resultado: "+resultado);
 +
Bitmap foto;
 +
 +
 +
 
 +
if (respuesta == Constantes.OK_FOTO){//Que la respuesta ha ido bien
 +
Log.i("FOTO","resultado de la foto OK");
 +
if (resultado==RESULT_OK) { //Que venimos del intent de hacer la foto
 +
Log.i("RESULTADO","Valor de la ubicacion de la foto "+ubicacion);
 +
//Depende de donde hayamos guardado la foto la recogeremos, es decir si hay bug o no lo hay
 +
  if (hayBug()) {
 +
  Bitmap foto2 = (Bitmap) data.getParcelableExtra("data");
 +
    imagen.setImageBitmap(foto2);
 +
  }
 +
    else{
 +
    Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
 +
  foto = BitmapFactory.decodeFile(ubicacion);
 +
  imagen.setImageBitmap(foto);
 +
    }
 +
 
 +
  if (respuesta == Constantes.OK_GALERIA){
 +
    Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
 +
  foto = BitmapFactory.decodeFile(ubicacion);
 +
  imagen.setImageBitmap(foto);
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
  -
 +
  /*
 +
  Uri u = data.getData();
 +
  Uri u2= Uri.fromFile(new File(ubicacion));
 +
  if (u==null)
 +
  Log.i("CROP","Dangggerrrr");
 +
  else
 +
  Log.i("CROP","Por aquí todo ok");
 +
  Log.i("FOTO","Voy a recortar la foto en la ubicacion "+ubicacion);
 +
  recorta(u,u2);
 +
  Log.i("FOTO","Vengo de recortar la foto");
 +
  */
 +
 
 +
  //ImageView iv = (ImageView)findViewById(R.id.imgView);
 +
  Bitmap foto2 = (Bitmap) data.getParcelableExtra("data");
 +
    imagen.setImageBitmap(foto2);
 +
 +
    Log.i("FOTO","voy a guardar la foto en "+ubicacion);
 +
    guardarImagenFichero (foto2,ubicacion);
 +
  }else{
 +
  Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
 +
  foto = BitmapFactory.decodeFile(ubicacion);
 +
  imagen.setImageBitmap(foto);
 +
  }
 +
   
 +
// Bitmap
 +
//}
 +
}
 +
}
 +
 +
if (respuesta == Constantes.OK_CROP){
 +
  Bundle extras = data.getExtras() ;
 +
//get the cropped bitmap
 +
foto = extras.getParcelable("data");
 +
imagen.setImageBitmap(foto);
 +
}
 +
 +
}
 +
 +
 +
 +
private void guardarImagenFichero(Bitmap imagen, String ub){
 +
 +
// Carpeta dónde guardamos la captura
 +
// En este caso, la raíz de la SD Card
 +
//File sd = Environment.getExternalStorageDirectory();
 +
File fichero = new File(ub);
 +
 
 +
// El archivo que contendrá la captura
 +
 +
 
 +
try {
 +
if (fichero.exists()==false){
 +
fichero.createNewFile();
 +
Log.i("GUARDAR","Creado el fichero "+fichero.toString());
 +
}
 +
OutputStream os = new FileOutputStream(fichero);
 +
imagen.compress(Bitmap.CompressFormat.PNG, 90, os);
 +
os.close();
 +
}
 +
catch (FileNotFoundException e) {
 +
Log.i("GUADAR","Error de fichero");
 +
e.printStackTrace();
 +
} catch (IOException e) {
 +
Log.i("GUADAR","Error de fichero");
 +
e.printStackTrace();
 +
}
 +
 +
}
 +
 +
private void recorta(Uri picUri, Uri salida) {
 +
        int aspectX = 2000;
 +
    int aspectY = 1200;
 +
 
 +
        Intent intent = new Intent("com.android.camera.action.CROP");
 +
        intent.setType("image/*");
 +
        List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );
 +
        int size = list.size();
 +
        if (size == 0) {           
 +
            Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();
 +
            Log.i("CROP","NONONO se puede");
 +
 
 +
            return;
 +
        } else {
 +
        Log.i("CROP","SIIIIIP se puede");
 +
        intent.setDataAndType(picUri, "image/*");
 +
        intent.putExtra("scale", "true");
 +
        intent.putExtra("aspectX", aspectX);
 +
        intent.putExtra("aspectY", aspectY);
 +
        intent.putExtra("scaleUpIfNeeded", true);
 +
        intent.putExtra("return-data", false);
 +
 
 +
        intent.putExtra(MediaStore.EXTRA_OUTPUT, salida);
 +
 
 +
        startActivityForResult(intent, Constantes.OK_CROP);
 +
}
 +
}
 +
 +
 +
 
 +
 
 +
 
 +
//Pillado en internet http://kartones.net/blogs/codefreak/archive/2012/03/31/android-tomando-fotos-rotando-fotos.aspx
 +
 +
//Obetener el nombre del fichero a partir de la URI
 +
  public static String getRealPathFromURI(Uri contentUri, Activity activity) {
 +
 
 +
        String[] proj = {
 +
            MediaStore.Images.Media.DATA
 +
        };
 +
        Cursor cursor = activity.managedQuery(contentUri, proj, null, null,
 +
                null);
 +
 
 +
        int column_index = cursor
 +
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
 +
        cursor.moveToFirst();
 +
        return cursor.getString(column_index);
 +
    }
 +
 +
 +
 +
//
 +
}
 +
 +
 
 +
 
 +
 
 +
 
 +
 
 +
</source>

Última revisión de 01:20 13 feb 2014



Desarrollo de aplicaciones con SDK de Android

Icon objectives.jpg

Objetivo

  1. Desarrollar aplicaciones para dispositivos móviles
  2. Usando el SDK de android


APP DE LA FOTO

package com.example.imagenes;
 
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
 
public class Imagenes extends Activity {
 
	Dialogo mensaje; 
	Intent intencion;
	String ubicacion;
	File carpeta;
	Uri img;
	File foto;
 
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
 
		// Creamos directorios si no existe para guardar nuestras imágenes
		carpeta = new File(Environment.getExternalStorageDirectory()+ File.separator + "Imagenes");
 
		if (!carpeta.exists())
			carpeta.mkdirs();
 
 
	}
 
 
 
    public void clickImagen(View v){
    	//Sacamos un DialogFragemen que me pregunta de donde quiero cargar la imagen
    	mensaje = new Dialogo();
    	mensaje.show(getFragmentManager(),"mensaje");
 
    }
 
    public void origenFoto(int opcion){
	    //Iniciamos la actividad foto
	     //DEFINO el intent
	     mensaje.dismiss();
	   	String nombreFoto = obtenerNombre()+".jpg";
    	foto = new File(carpeta.toString()+"/"+nombreFoto);
    	Log.i("FOTO)","Faile name xxxx = " + foto.toString());
 
	    ubicacion=foto.toString();
	    img = Uri.fromFile(foto);
	     switch (opcion){
 
	     case Constantes.ORIGEN_FOTO_CAMARA:
				if (hayBug){
					//no paso extras
					intencion =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
					startActivityForResult (intencion, Constantes.OK_FOTO);
				}else{
					intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
					intencion.putExtra("crop","true");
					startActivityForResult (intencion, Constantes.OK_FOTO);
 
				}
				intencion =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  				break;
			case Constantes.ORIGEN_FOTO_GALERIA:
				intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
				intencion.putExtra("crop","true");
				startActivityForResult (intencion, Constantes.OK_GALERIA);
				break;
		/*	case Constantes.MIS_FOTOS:
 
				Uri dir = Uri.parse(carpeta.toString());
				intencion =new Intent(Intent.ACTION_PICK,dir);
				break;
				*/
	     }
 
	  }
 
    //Método captado de http://stackoverflow.com/questions/1910608/android-action-image-capture-intent 
    //que evita un bug de android en determinadas versiones
 
    public boolean hasImageCaptureBug() {
 
        // list of known devices that have the bug
        ArrayList<String> devices = new ArrayList<String>();
        devices.add("android-devphone1/dream_devphone/dream");
        devices.add("generic/sdk/generic");
        devices.add("vodafone/vfpioneer/sapphire");
        devices.add("tmobile/kila/dream");
        devices.add("verizon/voles/sholes");
        devices.add("google_ion/google_ion/sapphire");
 
        return devices.contains(android.os.Build.BRAND + "/" + android.os.Build.PRODUCT + "/"
                + android.os.Build.DEVICE);
 
    }
 
    public void tomarFoto(){
    	//Preparamos el fichero donde queremos que se almacene
       	String nombreFoto = obtenerNombre()+".jpg";
    	foto = new File(carpeta.toString()+"/"+nombreFoto);
    	Log.i("FOTO)","Faile name xxxx = " + foto.toString());
 
	    ubicacion=foto.toString();
 
 
 
 
	    img = Uri.fromFile(foto);
	//Volvemos a usar la fución anterior para evitar el bug
		//Si no hay bug ponemos ya la ubicación de la foto
		if (hasImageCaptureBug()) {
			Log.i("FOTO","antes de intencion hay bug up");
		//	intencion.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 
		} else {
			intencion.putExtra(MediaStore.EXTRA_OUTPUT,img);
			intencion.putExtra("crop","true");
 
		    Log.i("FOTO","antes de intencion NOOO   bug up");
		}
 
		startActivityForResult(intencion , Constantes.OK_FOTO);
		Log.i("tomarFoto","vengo de tomar una foto");
		//Log.i("tomarFoto","imagen guardada en "+fileName);
 
 
 
	}
 
 
	private String obtenerNombre() {
		// TODO Auto-generated method stub
 
		SimpleDateFormat  fechaFormato = new SimpleDateFormat("yyyy_mm_dd_hh_mm_ss");  
		Date date = new Date();  
		String nombreFecha = fechaFormato.format(date);
		return nombreFecha;
	}
 
 
 
 
 
	protected void OnActivityResult(int respuesta, int resultado, Intent data) {
		// TODO Auto-generated method stub
		ImageView imagen = ((ImageView)findViewById(R.id.Imagen));
		super.onActivityResult(respuesta, resultado, data);
		Log.i("FOTO","Códigos devueltos: respuesta: "+respuesta+"Resultado: "+resultado);
		Bitmap foto;
 
 
 
		if (respuesta == Constantes.OK_FOTO){//Que la respuesta ha ido bien
			Log.i("FOTO","resultado de la foto OK");
			if (resultado==RESULT_OK) { //Que venimos del intent de hacer la foto
			Log.i("RESULTADO","Valor de la ubicacion de la foto "+ubicacion);
//Depende de donde hayamos guardado la foto la recogeremos, es decir si hay bug o no lo hay
			  if (hayBug()) {
				  Bitmap foto2 = (Bitmap) data.getParcelableExtra("data");
				    imagen.setImageBitmap(foto2);
			  }
				    else{
				    	Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
						  foto = BitmapFactory.decodeFile(ubicacion);
						  imagen.setImageBitmap(foto);
				    }
 
			  if (respuesta == Constantes.OK_GALERIA){
			    	Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
					  foto = BitmapFactory.decodeFile(ubicacion);
					  imagen.setImageBitmap(foto);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
					  -
				  /*
				  Uri u = data.getData();
				  Uri u2= Uri.fromFile(new File(ubicacion));
				  if (u==null)
					  Log.i("CROP","Dangggerrrr");
				  else 	
					  Log.i("CROP","Por aquí todo ok");
				  Log.i("FOTO","Voy a recortar la foto en la ubicacion "+ubicacion);
				  recorta(u,u2);
				  Log.i("FOTO","Vengo de recortar la foto");
				  */
 
				  //ImageView iv = (ImageView)findViewById(R.id.imgView);
				  Bitmap foto2 = (Bitmap) data.getParcelableExtra("data");
				    imagen.setImageBitmap(foto2);
 
				    Log.i("FOTO","voy a guardar la foto en "+ubicacion);
				    guardarImagenFichero (foto2,ubicacion);
			  }else{
				  Log.i("RESULTADO_FOTO","Foto ok en ubicacion "+ubicacion);
				  foto = BitmapFactory.decodeFile(ubicacion);
				  imagen.setImageBitmap(foto);
			  }
 
			//	Bitmap 
			//}
		}
		}
 
		if (respuesta == Constantes.OK_CROP){
			   Bundle extras = data.getExtras() 	;
			//get the cropped bitmap
			foto = extras.getParcelable("data");
			imagen.setImageBitmap(foto);
			}
 
		}
 
 
 
	private void guardarImagenFichero(Bitmap imagen, String ub){
 
		// Carpeta dónde guardamos la captura
		// En este caso, la raíz de la SD Card
		//File sd = Environment.getExternalStorageDirectory();
		File fichero = new File(ub);
 
		// El archivo que contendrá la captura
 
 
		try {
			if (fichero.exists()==false){
					fichero.createNewFile();
					Log.i("GUARDAR","Creado el fichero "+fichero.toString());
			}
				OutputStream os = new FileOutputStream(fichero);
				imagen.compress(Bitmap.CompressFormat.PNG, 90, os);
				os.close();
			}
	 catch (FileNotFoundException e) {
		 Log.i("GUADAR","Error de fichero");
		e.printStackTrace();
	} catch (IOException e) {
		Log.i("GUADAR","Error de fichero");
		e.printStackTrace();
	}
 
}
 
	private void recorta(Uri picUri, Uri salida) {
			        int aspectX = 2000;
			    int aspectY = 1200;
 
			        Intent intent = new Intent("com.android.camera.action.CROP");
			        intent.setType("image/*");
			        List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );
			        int size = list.size();
			        if (size == 0) {            
			            Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();
			            Log.i("CROP","NONONO se puede");
 
			            return;
			        } else {
			        	Log.i("CROP","SIIIIIP se puede");
			        intent.setDataAndType(picUri, "image/*");
			        intent.putExtra("scale", "true");
			        intent.putExtra("aspectX", aspectX);
			        intent.putExtra("aspectY", aspectY);
			        intent.putExtra("scaleUpIfNeeded", true);
			        intent.putExtra("return-data", false);
 
			        intent.putExtra(MediaStore.EXTRA_OUTPUT, salida);
 
			        startActivityForResult(intent, Constantes.OK_CROP);
			}
	}
 
 
 
 
 
	//Pillado en internet http://kartones.net/blogs/codefreak/archive/2012/03/31/android-tomando-fotos-rotando-fotos.aspx
 
	//Obetener el nombre del fichero a partir de la URI
	  public static String getRealPathFromURI(Uri contentUri, Activity activity) {
 
	        String[] proj = {
	            MediaStore.Images.Media.DATA
	        };
	        Cursor cursor = activity.managedQuery(contentUri, proj, null, null,
	                 null);
 
	        int column_index = cursor
	                 .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
	        cursor.moveToFirst();
	        return cursor.getString(column_index);
	    } 
 
 
 
	//
}