2012-04-18 6 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 코드에 게시되었습니다. 나는 확립하기 위해 노력하고있어 워크 플로는 여기에 있습니다 : 내 마지막 시도에서 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 계정 인증을 사용 하시겠습니까? –

+0

작업 서비스에 액세스하려고합니다. "Gmail 계정 인증"이란 무엇입니까? – Xisberto

답변

3

당신은

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

내가이 유를 도울 수 있기를 바랍니다 .. 서버 이메일에 연결 전자 메일 응용 프로그램에 대한 사용이 코드를 다음 메일 jar 파일, activation.jar을 추가 jar 파일 사용 및 사용!

+1

죄송합니다. 말씀하신 내용이나 코드를 이해할 수 없습니다. – Xisberto

-3

좋아요, 인증을 관리해야합니다. 나는 그 과정과 그 가치를 이해하지 못했습니다. 이제는 내 코드가 더 잘 작성되고 더 멋지게 작동합니다.

+0

당신이 한 일에 대해 설명하고 지식을 공유 할 수 있습니까? – Phillip

+0

당신이 한 일을 저희에게 알려주십시오. – tamsler

+1

@xisberto - 이것은 설명이 아니라 대답입니다. 대답으로 넣으려면 코드를 사용하여 솔루션을 설명해야합니다. ta vacilando, Xb3rt0 ... –