2011-06-21 8 views
1

私は既に存在するアプリを開発していますが、私は学ぶために開発中です。私はAndroid用のGMailクライアントアプリを開発しています。私はContent Observerを試しましたが、GmailのInboxのコンテンツプロバイダURIを見つけることができませんでした。私はクライアントを設定することによって別の方法を試しています。私のクライアントはセットアップされていますが、私はこのクライアントをインスタンス化してGMailサーバーにヒットする方法がわかりません。Gmailアカウントと話すためのAndroidアプリを起動するには?

私のコードは次のとおりです。私はにすべての情報を収集した後に何をすべきか分からない

GMailInbox.java

package com.tyco.gmailApp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 

public class GmailInbox extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //GmailObserver go = new GmailObserver(); 
     //this.getApplicationContext().getContentResolver().registerContentObserver(Uri.parse("content://imap.gmail.com"), true, go); 

     Intent myService = new Intent(this,GMailService.class); 
     myService.putExtra("user", "[email protected]"); 
     myService.putExtra("password", "brooklyn"); 
     startService(myService); 
    } 
} 

GMailService.java

package com.tyco.gmailApp; 


import java.util.Properties; 
import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 
import android.view.inputmethod.InputMethodSession; 
import android.view.inputmethod.InputMethod.SessionCallback; 
public class GMailService extends Service 
{ 

    private String mailhost = "imaps.gmail.com"; 
    private String user; 
    private String password; 

    @Override 
    public IBinder onBind(Intent intent){ 
     return null; 
    } 

    @Override 
    public void onCreate(){ 
     super.onCreate(); 


    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
    } 

    @Override 
    public void onStart(Intent intent, int startId) { 
     super.onStart(intent, startId); 
     this.user = intent.getStringExtra("user"); 
     this.password = intent.getStringExtra("password");; 
     Properties props = new Properties(); 
     props = System.getProperties(); 
     props.setProperty("mail.store.protocol", "imaps"); 
     props.setProperty("mail.imaps.host", mailhost); 
     props.put("mail.imaps.auth", "true"); 
     props.put("mail.imaps.port", "993"); 
     props.put("mail.imaps.socketFactory.port", "993"); 
     props.put("mail.imaps.socketFactory.class", 
        "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.imaps.socketFactory.fallback", "false"); 
     props.put("mail.imaps.socketFactory.fallback", "false"); 
     props.setProperty("mail.imaps.quitwait", "false"); 


// I Don't Know what to do here 



    } 




} 

プロパティオブジェクト。何かお勧めします。

よろしく、 ラウール・ジャイスウォール

答えて

1

は、メールサーバ

Session session = Session.getDefaultInstance(props, null); 
    try{ 
     Store store = session.getStore("imaps"); 
     store.connect(mailhost, mailid,password);  
     Folder folder = store.getFolder("INBOX"); 
     folder.open(Folder.READ_ONLY); 
     int count=folder.getUnreadMessageCount(); 
     Message message[] = folder.getMessages(); 
     for (int i=0, n=message.length; i<n; i++) { 
       System.out.println("subject " +message[i].getSubject()); 
     } 
     } 
+0

に接続するには、このコードを追加します。私はこのコードを試してみましたが、セッションは、Androidでサポートされていないのjavax.mailパッケージで定義されたクラスです。 – Rahul

+0

mail-1.4_1.jarをプロジェクトに追加しました。今すぐ次のエラーが発生しています: javax.mail.MessagingException:ホストが解決されていません:imaps.gmail.com; ネストされた例外: java.net.SocketException:ホストが未解決:imaps.gmail.com 私のmailHost urlを "imap.gmail.com"ではなく "imaps.gmail.com"に変更して解決しました。 – Rahul

関連する問題