이글은…
안드로이드에서 제공하는 AccountManager사용에 대해서 잘 설명된 http://cranix.net/349 내용을 따라가다가 에러가 나서, 이를 해결(?)한 내용을 정리한 글입니다. 아래의 부가설명을 제외한 나머지 내용은 원본 페이지의 내용을 참고하시기 바랍니다.
참고한 내용에 있는대로 하면 아래에서 오류가 난다.
accountManager.addAccountExplicitly(account, password, null);
문제가 된건 accout에 있는 account type이 맞지 않아서 발생한 현상.
결국 해결한(?) 방법은 계정에 대한 속성(xml 에 정의한)값중 accountType값을 account 생성시에 넘겨 주면 된다.
계정에 대한 정보가 있는 xml 파일에는 다음과 같이 되어 있다.
<account-authenticator xmlns:android="“http://schemas.android.com/apk/res/android”"
android:accounttype="“ClipAndBooks" service”=""
android:icon="“@drawable/ic_launcher”"
android:smallicon="“@drawable/ic_launcher”"
android:label="“@string/set_service_account”">
</account-authenticator>
android:accountType=“ClipAndBooks Service” 로 되어 있으니, 코드상의 Account에서는 다음과 같이 한다.
final Account account = new Account(id, “ClipAndBooks Service”);
그런데.. 매번 이렇게 쓰는건 불편할테니.. 별도의 class에다가 써 두는게 낫다. (아.. 용어가 맞지 않을 수 있다.)
실제 참고로 한 사이트에서도 별도 class로 만든것으로 보이는데, 이 부분에 대한 언급이 따로 없었다.
<Constants.java>
package com.clipandbooks.test.android_account;
public class Constants {
final static String ACCOUNT_TYPE = “ClipAndBooks Service”;
}
결국은 다음과 같이 한다.
final Account account = new Account(id, Constants.ACCOUNT_TYPE);
이후 나머지는 참고 사이트 내용과 동일하다.
* 부가적인 사항을 제외한 나머지는 원본글을 따릅니다.
댓글 영역