2011-07-09 25 views
7

Estoy usando un código como este para obtener correo electrónico de Gmail utilizando el proveedor de contenido. Mi problema es que el campo "fromAddress" contiene el nombre del remitente en lugar del correo electrónico del remitente. Por ejemplo, contendrá "John Doe" pero me gustaría tener "[email protected]".¿Cómo puedo obtener la dirección de correo electrónico

El nombre en el campo es el establecido por el usuario en su cliente de correo electrónico, no proviene de mis contactos de Android.

Aquí está el código que estoy usando:

ContentResolver resolver = context.getContentResolver(); 
cursor = resolver.query(Uri.parse("content://gmail-ls/conversations/[email protected]/", null, null, null, null); 
cursor.moveToFirst(); 
String fromAddress = cursor.getString(cursor.getColumnIndexOrThrow("fromAddress"))); 
cursor.close(); 

Sé que el correo electrónico no se encuentra en cualquiera de los campos procedentes de este URI. Lo he intentado con este tipo de URI: "content: //gmail-ls/messages/[email protected]/39920384203052" pero siempre devuelve un cursor con 0 registros para un messageId válido.

Por favor, ayúdame a correo electrónico del remitente de un correo electrónico de Gmail dado ...

Gracias!

Respuesta

0

No he podido encontrar ninguna documentación sobre el proveedor de contenido de GMail para Android, pero esto podría ayudarlo.

Abra un objeto HttpRequest y envíelo aquí - https://mail.google.com/mail/feed/atom Una vez que se autentica (autenticación HTTP estándar), debe recibir un feed XML de su bandeja de entrada.

A partir de ahí puede analizarlo. El campo que está buscando es entrada-> autor-> correo electrónico.

Espero que esto ayude!

2

iniciar una actividad por resultado

Intent intent = new new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);

startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT); 

onActivityResult

Uri result = data.getData(); 
String con = result.getLastPathSegment(); 
cursor = getContentResolver().query(Phone.CONTENT_URI, 
        null, Phone.CONTACT_ID + "=?", new String[] { con }, 
        null); 
int id = cursor.getColumnIndex(Phone.DATA); 
if(cursor.moveToFirst()){ 
    String mail = cursor.getString(id); 
    Log.e("Email", mail); 
} 
Cuestiones relacionadas