syncadapter 예제를 따라 AccountManager 및 동기화 어댑터를 만들었습니다. 서로 다른 목적을 위해 두 가지 유형의 authtokens를 갖고 싶었습니다 (서로 다른 서비스에 대한 액세스 - 동기화 어댑터는 동일한 계정에서 하나를 사용합니다).여러 인증 토큰 유형이있는 Android AccountManager
일들이 작동하지만 하나의 authtoken 유형에 대해 (getauthtoken을 통해) 인증 할 때 다른 authtoken 유형을 대체하는 프로세스가 저장된다는 것을 알았습니다. 전과 후에 accounts.db 파일을 조사했습니다. authtoken 유형 "B"에 대한 토큰을 얻기 위해 호출하기 전에 accounts.db의 authtoken 테이블에는 auth 유형 "A"에 대한 authtoken이 있습니다. 호출 후 accounts.db의 authtoken 테이블에 "B"유형의 authtoken이 있지만 "A"는 제거되었습니다. 주문과 상관없이, accountmanager 하위 시스템은 내 계정 유형에 대해 계정 당 하나의 authtoken 이상을 저장하지 않습니다.
authtoken 유형이 두 개 이상인 경우 일부 xml 파일에서 구성해야 할 특별한 것이 있습니까?
토큰을 저장할 때 특정 유형으로 토큰을 저장 하시겠습니까? – CChi
처음에는 그럴 수 있다고 생각했지만 유형을 지정하는 방법을 찾지 못했습니다. 토큰은 AccountAuthenticatorActivity에서 상속 된 setAccountAuthenticatorResult() 메소드를 사용하여 설정됩니다. 추가 번들의 값은 유형을 지정하지 않습니다. 유형은 getAuthToken()을 사용하여 전달되었습니다. AccountManager의 키 (예 : KEY_ACCOUNT_NAME)가 누락 된 경우를 제외하고는 authtoken 유형을 참조하지 않습니다. 하지만 authtoken 형식이 accounts.db에 올바르게 설정되어 있는지 확인합니다. 다른 인증 형식 레코드가 제거되었습니다. – BJV
을 엑스트라 번들로 사용하여 유형을 지정하고 AccountManager.KEY_ACCOUNT_TYPE을 키로 전달하고 계정 유형의 문자열 표현을 값으로 전달할 수 있습니다. – CChi