2011-07-09 17 views
7

私はこのようなコードを使用してコンテンツプロバイダを使用してGmailの電子メールを取得しています。私の問題は、「fromAddress」フィールドに送信者の電子メールの代わりに送信者の名前が含まれていることです。例えば、 "John Doe"が含まれますが、 "[email protected]"を持っています。電子メールアドレスを取得するには

フィールドの名前は、電子メールクライアントでユーザーが設定した名前です。私のアンドロイドの連絡先からは来ません。

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(); 

私は電子メールは、このURIから来るすべてのフィールドではありません知っている:

はここで私が使用しているコードです。私はこの種のURI: "content://gmail-ls/messages/[email protected]/39920384203052"で試しましたが、有効なmessageIdのために常に0のレコードを持つカーソルを返します。

はありがとう...私は与えられたGmailの電子メールの送信者の電子メールを取得する助けてください!

答えて

0

私は、アンドロイド用のGMailコンテンツプロバイダに関するドキュメントを見つけることができませんでしたが、これが役立つかもしれません。

HttpRequestオブジェクトを開き、ここで送信します。https://mail.google.com/mail/feed/atom認証を受けたら(標準のHTTP認証)、受信トレイのXMLフィードを取得する必要があります。

そこから解析できます。あなたが探しているフィールドは、entry-> author-> emailです。

希望すると便利です。

2

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); 
} 

OnActivityResult

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

startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT); 

結果のために活動を開始します

関連する問題