2010-01-08 3 views
2

사용자의 Google Finance 포트폴리오에서 피드를 검색하기 위해 gdata를 사용하는 작업 코드가 있지만 setUserCredentials (사용자 이름, 암호)을 사용해야했습니다. Android 기기가 이미 Google 계정에 액세스 할 수 있으므로 사용자에게 사용자 이름/비밀번호를 묻는 일을 피하고 싶습니다.com.google.gdata.client.GoogleService.setUserToken (android.accounts.AccountManager.getAuthToken (???))

setUserToken (String)으로이 작업을 수행 할 수 있다고 생각하지만 Android에서 적절한 토큰을 얻는 방법을 알 수 없습니다. AccountManager.get (context) .blockingGetAuthToken() 시도했는데 올바른 호출이 아니거나 잘못된 인수를 전달하는 중입니다.

누구든지 휴대 전화에서 사용자의 기존 Google 자격 증명으로 작업하고 있습니까? 사전에

감사합니다, 레니

+0

혹시이 질문에 대한 답변을 찾았습니까? 나는 매우 흥미가있을 것이다! – pgsandstrom

+0

매니페스트 파일에 USE_CREDENTIALS 권한을 잊어 버린 것으로 의심됩니다. – instcode

+0

처음 테스트했을 때 매니페스트에 있었고 android.permission.GET_ACCOUNTS도 매니페스트 파일에 있습니다. –

답변

0

AccountManager.blockingGetAuthToken() 올바른 호출입니다. AccountString authTokenType을 전달하십시오. 귀하의 경우, "android" 또는 "finance", 귀하가 선택한 문자열 (찾고있는 문자열의 값이 명확하게 문서화되어 있지 않음)을 전달하십시오.

계정을 얻는 쉬운 방법은 동기화 어댑터를 의미하는 클래스에서 onPerformSync() 호출의 일부로 모든 클라이언트 통신을 수행하는 것입니다. SyncAdapter를 설정하는 방법에 대한 자습서가 많이 있습니다. 가는 당신의 SyncAdapter를 얻기의 일환으로, 당신은 아마 그래서 다음 또는 같은 권한을 혼란하게 될 겁니다 :

그 마지막 두, 다시 종류의 위험한 곳을 알고 누가 그들을 파고
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 
<uses-permission android:name="android.permission.READ_SYNC_STATS" /> 
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" /> 
<uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.finance" /> 

.