It is important that the accountType specified here matches the value in your sync adapter * configuration XML file for android.accounts.AccountAuthenticator (often saved in * res/xml/syncadapter.xml). If this is not set correctly, you'll receive an error indicating * that "caller uid XXXXX is different than the authenticator's uid". * * @param accountType AccountType defined in the configuration XML file for * android.accounts.AccountAuthenticator (e.g. res/xml/syncadapter.xml). * @return Handle to application's account (not guaranteed to resolve unless CreateSyncAccount() * has been called) */ public static Account GetAccount(String accountType) { // Note: Normally the account name is set to the user's identity (username or email // address). However, since we aren't actually using any user accounts, it makes more sense // to use a generic string in this case. // // This string should *not* be localized. If the user switches locale, we would not be // able to locate the old account, and may erroneously register multiple accounts. final String accountName = ACCOUNT_NAME; return new Account(accountName, accountType); } @Override public void onCreate() { Log.i(TAG, "Service created"); mAuthenticator = new Authenticator(this); } @Override public void onDestroy() { Log.i(TAG, "Service destroyed"); } @Override public IBinder onBind(Intent intent) { return mAuthenticator.getIBinder(); } public class Authenticator extends AbstractAccountAuthenticator { public Authenticator(Context context) { super(context); } @Override public Bundle editProperties(AccountAuthenticatorResponse accountAuthenticatorResponse, String s) { throw new UnsupportedOperationException(); } @Override public Bundle addAccount(AccountAuthenticatorResponse accountAuthenticatorResponse, String s, String s2, String[] strings, Bundle bundle) throws NetworkErrorException { return null; } @Override public Bundle confirmCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, Bundle bundle) throws NetworkErrorException { return null; } @Override public Bundle getAuthToken(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String s, Bundle bundle) throws NetworkErrorException { throw new UnsupportedOperationException(); } @Override public String getAuthTokenLabel(String s) { throw new UnsupportedOperationException(); } @Override public Bundle updateCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String s, Bundle bundle) throws NetworkErrorException { throw new UnsupportedOperationException(); } @Override public Bundle hasFeatures(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String[] strings) throws NetworkErrorException { throw new UnsupportedOperationException(); } } }