2012-04-18 10 views
1

我試圖按照這個例子:http://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample/src/main/java/com/google/api/services/samples/tasks/android/TasksSample.java?repo=samples什麼是在我的Android應用中驗證Google帳戶的最佳工作流程?

我的代碼有點不好寫,但它在Google Code中發佈。我試圖建立工作流是在這裏:http://code.google.com/p/phone-to-desktop/source/browse/src/net/xisberto/phonetodesktop/PhoneToDesktopActivity.java?spec=svnd70158809aeb1ba00e26a33dc7110ade33b76427&name=google-tasks&r=d70158809aeb1ba00e26a33dc7110ade33b76427

在我最後一次嘗試,當應用程序進入到下面的方法:

private void chooseAccount() { 
    Log.i(getPackageName(), "Starting authenticate"); 
    AccountManager manager = AccountManager.get(getApplicationContext()); 
    manager.getAuthTokenByFeatures(
       "google.com", 
       "Manage your tasks", 
       null, PhoneToDesktopActivity.this, null, null, 
       new AccountManagerCallback<Bundle>() { 
         @Override 
         public void run(AccountManagerFuture<Bundle> future) { 
          try { 
           Bundle bundle = future.getResult(); 
           //So we save the account and token 
           setAccountName(bundle.getString(PREF_ACCOUNT_NAME)); 
           setAuthToken(bundle.getString(PREF_AUTH_TOKEN)); 
           Toast.makeText(getApplicationContext(), 
            "Account authenticated: " + 
            bundle.getString(PREF_ACCOUNT_NAME) + "\n" + 
            bundle.getString(PREF_AUTH_TOKEN), 
            Toast.LENGTH_SHORT). 
           show(); 
           //Then we create the list we will use 
           createList(); 
          } catch (OperationCanceledException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } catch (AuthenticatorException e) { 
           Log.e(getApplicationInfo().packageName, e.getMessage(), e); 
          } catch (IOException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
         } 
       }, 
       null); 
} 

而且我得到的是沒有視覺的變化,並在DDMS這些消息:

04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): bind failure 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): android.accounts.AuthenticatorException: bind failure 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1450) 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at android.accounts.AccountManager.access$400(AccountManager.java:138) 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1296) 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69) 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at android.os.Binder.execTransact(Binder.java:339) 
04-18 00:59:53.187: E/net.xisberto.phonetodesktop(10488): at dalvik.system.NativeStart.run(Native Method) 

任何幫助/教程/代碼示例,可以幫助嗎?

在此先感謝。

+0

我可以幫助你。請告訴我你是否想使用Gmail帳戶身份驗證? – 2012-04-18 05:10:37

+0

我想訪問任務服務。 「Gmail帳戶身份驗證」是什麼意思? – Xisberto 2012-04-18 17:04:53

回答

3

您使用郵件jar文件,activation.jar,然後附加jar文件的使用和下面的代碼則用於連接電子郵件應用程序服務器的電子郵件..

  Properties props = System.getProperties(); 
      props.setProperty("mail.store.protocol", "imaps"); 
      props.put("mail.smtp.starttls.enable","true"); 
      Authenticator auth = new Authenticator() { 
       protected PasswordAuthentication getPasswordAuthentication(){ 
        return new PasswordAuthentication("USEREMAILID","PASSWORD "); 
        } 
      }; 
      sessioned= Session.getDefaultInstance(props, auth); 
      store = sessioned.getStore("imaps"); 
      store.connect("smtp.gmail.com","USEREMAILID","PASSWORD "); 

我希望這能幫助ü!

+1

對不起,我不能理解你說的,也不懂代碼。 – Xisberto 2012-04-27 19:31:45

-3

好的,我必須管理身份驗證。我沒有理解過程和設定的價值。現在我的代碼寫得更好,效果更好。

+0

你能解釋你做了什麼並分享知識嗎? – Phillip 2012-05-25 19:05:13

+0

請告訴我們你做了什麼。 – tamsler 2012-07-06 05:30:04

+1

@xisberto - 這是一條評論,而不是答案。如果你打算把它作爲答案,你必須用代碼來說明解決方案。 ta vacilando,Xb3rt0 ... – 2012-07-23 17:40:34

相關問題