2011-07-29 2 views
2

다른 기기에 앱을 설치할 때 서버 측 데이터를 자동 동기화 할 수 있도록 사용자에게 Google 계정을 연결 해줄 것을 요청하는 애플리케이션을 작성 중입니다.안드로이드 장치가없는 경우 사용자에게 Google 계정을 추가하도록 요청합니다.

이미 사용 가능한 사용자 계정 목록을 끌어

AccountManager accountManager = AccountManager.get(mContext); 
Account[] accounts = accountManager.getAccountsByType("com.google"); 

을 사용하고 있습니다. 이 경우에는 하나만 사용하고 두 개 이상의 계정의 경우 사용자에게 응용 프로그램과 연결할 계정을 선택하도록 요청합니다. 지금 문제는 기기에 Google 계정이없는 시나리오입니다. 현재이 계정을 사용 중입니다.

context.startActivity(new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT)); 

강제로 계정 추가 대화 상자를 사용하십시오. 그러나 문제는 추가 할 계정 유형을 사용자에게 제공하기 때문에 Google 계정 추가 옵션에 바로 넣으므로 혼란스러워하지 않으려합니다. 이것을 할 수있는 방법이 있습니까?

답변

5

뭔가를 수행해야합니다

AccountManager accountMgr = AccountManager.get(mContext); 
accountMgr.addAccount("com.google", "ah", null, new Bundle(), (Activity) mContext, null, null); 

는 "아"인증 토큰 유형입니다.

+0

당신은 내 자신의 질문에 대답하기 위해 나를 때려. – AWinter

+0

하하 죄송합니다. 받아 줘서 고마워! –

+0

"GET_ACCOUNTS"권한을 사용하지 않고 현재 앱의 계정이 생성되기 전에 존재하는지 확인할 수 있습니까? –

1

나는 완전히 모르겠지만 : 하단에 http://www.thialfihar.org/projects/android_add_account/

내가하지 당신이 찾고있는 무슨이 경우 매우 확신 그래도, Google 계정을 추가하는 코드가있다. 이 같은

+0

해당 링크의 코드가 작동하지 않지만 올바른 방향의 포인터를 제공합니다. 그 때문에 당신에게 투표권을주고, 내가 찾은 답을 추가 할 것입니다. – AWinter

+0

괜찮아, 잘하면 그것은 당신을 위해 일할거야;) – Androider

5

나는 지금이 오래된 질문이지만 안드로이드는 대안을 제시했다.

AccountManager.addAccount()을 사용하려면 MANAGE_ACCOUNTS 권한이 필요합니다. 사용자가 해당 권한을 보았을 때 앱을 보크에서 찾았다. 내가 비록 Settings.EXTRA_ACCOUNT_TYPES가 추가 된 것을 발견했습니다

Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); 
intent.putExtra(Settings.EXTRA_ACCOUNT_TYPES, new String[] {"com.google"}); 
startActivity(intent); 

는 18 무슨 API : http://developer.android.com/reference/android/provider/Settings.html#EXTRA_ACCOUNT_TYPES

이 추가 Google 계정 흐름을 실행 : 당신은 별도의 API (18)에 추가 된 Settings.EXTRA_ACCOUNT_TYPES를 사용하는 경우 MANAGE_ACCOUNTS을 필요로 방지 할 수 있습니다 ICS 이상을 실행하는 모든 장치에서 작동하는 것 같습니다. 슬프게도 진저 브레드에서는 효과가 없었습니다. API 18 이전에 작동하도록 신뢰할 수 있는지 확실하지 않지만 지금까지 성공을 거두었습니다.

+1

Google 계정 추가 대화 상자를 호출하는 것이 가장 올바른 방법이라고 생각합니다. – Nik

+0

완벽하게 작동합니다. 감사!! – FedeAmura

관련 문제