Skip to content

Most visited

Recently visited

navigation
BasicSyncAdapter / src / com.example.android.common / accounts /

GenericAccountService.java

1
/*
2
 * Copyright 2013 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
 
17
package com.example.android.common.accounts;
18
 
19
import android.accounts.AbstractAccountAuthenticator;
20
import android.accounts.Account;
21
import android.accounts.AccountAuthenticatorResponse;
22
import android.accounts.NetworkErrorException;
23
import android.app.Service;
24
import android.content.Context;
25
import android.content.Intent;
26
import android.os.Bundle;
27
import android.os.IBinder;
28
import android.util.Log;
29
 
30
public class GenericAccountService extends Service {
31
    private static final String TAG = "GenericAccountService";
32
    public static final String ACCOUNT_NAME = "Account";
33
    private Authenticator mAuthenticator;
34
 
35
    /**
36
     * Obtain a handle to the {@link android.accounts.Account} used for sync in this application.
37
     *
38
     * <p>It is important that the accountType specified here matches the value in your sync adapter
39
     * configuration XML file for android.accounts.AccountAuthenticator (often saved in
40
     * res/xml/syncadapter.xml). If this is not set correctly, you'll receive an error indicating
41
     * that "caller uid XXXXX is different than the authenticator's uid".
42
     *
43
     * @param accountType AccountType defined in the configuration XML file for
44
     *                    android.accounts.AccountAuthenticator (e.g. res/xml/syncadapter.xml).
45
     * @return Handle to application's account (not guaranteed to resolve unless CreateSyncAccount()
46
     *         has been called)
47
     */
48
    public static Account GetAccount(String accountType) {
49
        // Note: Normally the account name is set to the user's identity (username or email
50
        // address). However, since we aren't actually using any user accounts, it makes more sense
51
        // to use a generic string in this case.
52
        //
53
        // This string should *not* be localized. If the user switches locale, we would not be
54
        // able to locate the old account, and may erroneously register multiple accounts.
55
        final String accountName = ACCOUNT_NAME;
56
        return new Account(accountName, accountType);
57
    }
58
 
59
    @Override
60
    public void onCreate() {
61
        Log.i(TAG, "Service created");
62
        mAuthenticator = new Authenticator(this);
63
    }
64
 
65
    @Override
66
    public void onDestroy() {
67
        Log.i(TAG, "Service destroyed");
68
    }
69
 
70
    @Override
71
    public IBinder onBind(Intent intent) {
72
        return mAuthenticator.getIBinder();
73
    }
74
 
75
    public class Authenticator extends AbstractAccountAuthenticator {
76
        public Authenticator(Context context) {
77
            super(context);
78
        }
79
 
80
        @Override
81
        public Bundle editProperties(AccountAuthenticatorResponse accountAuthenticatorResponse,
82
                                     String s) {
83
            throw new UnsupportedOperationException();
84
        }
85
 
86
        @Override
87
        public Bundle addAccount(AccountAuthenticatorResponse accountAuthenticatorResponse,
88
                                 String s, String s2, String[] strings, Bundle bundle)
89
                throws NetworkErrorException {
90
            return null;
91
        }
92
 
93
        @Override
94
        public Bundle confirmCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse,
95
                                         Account account, Bundle bundle)
96
                throws NetworkErrorException {
97
            return null;
98
        }
99
 
100
        @Override
101
        public Bundle getAuthToken(AccountAuthenticatorResponse accountAuthenticatorResponse,
102
                                   Account account, String s, Bundle bundle)
103
                throws NetworkErrorException {
104
            throw new UnsupportedOperationException();
105
        }
106
 
107
        @Override
108
        public String getAuthTokenLabel(String s) {
109
            throw new UnsupportedOperationException();
110
        }
111
 
112
        @Override
113
        public Bundle updateCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse,
114
                                        Account account, String s, Bundle bundle)
115
                throws NetworkErrorException {
116
            throw new UnsupportedOperationException();
117
        }
118
 
119
        @Override
120
        public Bundle hasFeatures(AccountAuthenticatorResponse accountAuthenticatorResponse,
121
                                  Account account, String[] strings)
122
                throws NetworkErrorException {
123
            throw new UnsupportedOperationException();
124
        }
125
    }
126
 
127
}
128
 
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.