Dan,

I didn't see this call in your current Google code project.  Is your
use of AddAccountExplicitly() in there?

Cheers,
Jerry

On Nov 20, 7:53 am, Dan Dumont <[email protected]> wrote:
> Yes.   But I make the AddAccountExplicitly call in my Authenticator.    You
> use the AccountManager to create accounts.
> If you call AddAccountExplicitly from a non-authenticator class, I guess it
> will work...  But I think the security behind it will mean that only the
> class that created the account will be able to ever modify it or extract the
> password.
>
> This is why they have a framework for you to get an authtoken returned via
> the authenticator... the logic for authenticating should be buried within
> there, because it will be the only class allowed to peak at the password and
> send it wherever you are authenticating.
>
> On Fri, Nov 20, 2009 at 2:16 AM, sukumar bhashyam <
>
> [email protected]> wrote:
> > AddAccountExplicitly() would need Authenticator of same type.
>
> > I created an Authenticator and called AddAccountExplicitly() for the same
> > type which created an account ( Could verify it from
> > AccountManager.getAccounts())
>
> > One strange thing I observer is none of the  implementation class functions
> > of AbstractAccountAuthenticator is being called. I followed the exact steps
> > in documentation. Not even onCreate or onBind function is called. Anyone
> > seen this problem?. Is your AbstractAccountAuthenticator implemetation class
> > being invoked?.
> > Thanks.
>
> > On Thu, Nov 19, 2009 at 8:26 PM, Jerry Brady <[email protected]>wrote:
>
> >> Dan,
>
> >> Thanks for all of this.  I just returned to the office and will be
> >> taking a look to see how much further I can get and I will certainly
> >> be interested in helping with your accounts project.
>
> >> I got as far as getting my account to show up in the list of accounts
> >> along with Google, Facebook and Exchange, but my service never gets
> >> called.  My addAccount() method doesn't return an intent, but rather
> >> KEY_ACCOUNT_NAME and KEY_ACCOUNT_TYPE in it's bundle to let the
> >> account request succeed.
>
> >> My goal is to create an account that will only be used by my
> >> application and does not need to have any features to enable external
> >> authentication or account configuration.
>
> >> I've also tried AddAccountExplicitly() but I can't seem to get around
> >> its UID restrictions.  The calling activity and the authenticator
> >> service all belong to the same application so I'm not sure why the
> >> system still throws an error about the UID not being correct.
>
> >> Cheers,
> >> Jerry
>
> >> On Nov 13, 11:54 pm, Dan Dumont <[email protected]> wrote:
> >> > For anyone still interested.    I've made a bit of progress.   The
> >> google
> >> > project below now creates and lists accounts of the type for the
> >> project!
>
> >> > On Fri, Nov 13, 2009 at 9:39 PM, Dan Dumont <[email protected]> wrote:
> >> > > To facilitate the discussion around this topic, I've started up a
> >> project
> >> > > over here:
> >> > >http://code.google.com/p/androidaccounts/
>
> >> > > <http://code.google.com/p/androidaccounts/>If anyone is interested in
> >> > > pitching in and writing some examples, let me know so I can add you.
> >> > > The current state of the project is as far as I've gotten to
> >> understanding
> >> > > what is available so far... and I'm stumped as to why new accounts
> >> don't
> >> > > seem to persist after their creation ( as far as the AccountsTester
> >> app is
> >> > > concerned ).
>
> >> > > On Fri, Nov 13, 2009 at 7:40 PM, Dan Dumont <[email protected]>
> >> wrote:
>
> >> > >> I've gotten a bit further than you.
>
> >> > >> The account manager seems to want to store AccountName+Type pairs,
> >> and
> >> > >> have an AccountAuthenticator handle the storage and dirty bits of the
> >> actual
> >> > >> authentication and credential storage.
>
> >> > >> You will need to create an AccountAuthenticator from the
> >> > >> AbstractAccountAuthenticator class.
> >> > >> You will also need to define a Service in your app.   See
>
> >>http://developer.android.com/reference/android/accounts/AbstractAccou...
> >> > >> This service must be set up in the Manifest like so:  (ripped from
> >> link
> >> > >> above)
>
> >> > >>  <intent-filter>
> >> > >>      <action android:name="android.accounts.AccountAuthenticator" />
> >> > >>    </intent-filter>
> >> > >>    <meta-data android:name="android.accounts.AccountAuthenticator"
> >> > >>              android:resource="@xml/authenticator" />
>
> >> > >> You can take a look at the link for what the resource must be...
>
> >> > >> After you end up hooking all that crap up, you can do this in your
> >> > >> service:
> >> > >>  public IBinder onBind(Intent intent) {
> >> > >>  IBinder ret = null;
> >> > >>  if
>
> >> (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTIC
> >> ATOR_INTENT))
> >> > >>  ret = getAuthenticator().getIBinder();
> >> > >>  return ret;
> >> > >>  }
>
> >> > >> private AccountAuthenticator getSametimeAuthenticator() {
> >> > >>  if (_aa == null)
> >> > >> _aa = new AccountAuthenticator(this);
> >> > >> return _aa;
> >> > >>  }
>
> >> > >> So when you finally have all this set up.    You should see your
> >> account
> >> > >> type listed in the AccountTester application next to the "Corporate"
> >> type.
> >> > >> To get anything meaningful to happen when you click Add, you need to
> >> do
> >> > >> this in your AccountAuthenticator:
>
> >> > >> public Bundle addAccount(AccountAuthenticatorResponse response,
> >> String
> >> > >> accountType, String authTokenType, String[] requiredFeatures, Bundle
> >> > >> options) throws NetworkErrorException {
> >> > >>  Bundle ret = new Bundle();
> >> > >>  Intent intent = new Intent(_context,
> >> > >> AccountAuthenticatorActivity.class);
> >> > >>  intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE,
> >> > >> response);
> >> > >>  ret.putParcelable(AccountManager.KEY_INTENT, intent);
> >> > >> return ret;
> >> > >> }
>
> >> > >> This basically says that...   I'm going to prompt the user to enter
> >> > >> credentials using the MyAccountAuthenticatorActivity class.
> >> > >> The MyAccountAuthenticatorActivity activity should probably extend
> >> the
> >> > >> class AccountAuthenticatorActivity.   Here's mine:
>
> >> > >> public class MyAccountAuthenticatorActivity extends
> >> > >> AccountAuthenticatorActivity {
> >> > >> protected void onCreate(Bundle icicle) {
> >> > >>  super.onCreate(icicle);
> >> > >> setContentView(R.layout.new_account);
> >> > >>  final Button done = (Button)findViewById(R.id.new_account_done);
> >> > >> final EditText server =
> >> (EditText)findViewById(R.id.new_account_server);
> >> > >>  final EditText username =
> >> > >> (EditText)findViewById(R.id.new_account_username);
> >> > >> final EditText password =
> >> > >> (EditText)findViewById(R.id.new_account_password);
> >> > >>  done.setOnClickListener(new OnClickListener() {
> >> > >> public void onClick(View v) {
> >> > >>  Bundle result = new Bundle();
> >> > >> result.putString(AccountManager.KEY_ACCOUNT_NAME,
> >> > >> username.getText().toString());
> >> > >>  result.putString(AccountManager.KEY_ACCOUNT_TYPE,
> >> > >> getString(R.string.ACCOUNT_TYPE));
> >> > >> setAccountAuthenticatorResult(result);
> >> > >>  finish();
> >> > >> }
> >> > >> });
> >> > >>  }
> >> > >> }
>
> >> > >> The bundle you would normally pass back if you had no Activity to
> >> enter
> >> > >> credentials is passed back with
> >> setAccountAuthenticatorResult(result);
> >> > >> and finish();
>
> >> > >> That's about as far as i've gotten.    When i click Add in the
> >> > >> AccountsTester app, the activity to enter creds is launched, and
> >> whent he
> >> > >> done button is pressed I get this message in the LogCat:
> >> > >> 11-13 19:21:58.488: DEBUG/AccountsTester(291): account added:
> >> > >> Bundle[{accountType=com.my.package.app.auth.account_type,
> >> > >> authAccount=testaccout}]
>
> >> > >> But the AccountsTester app refuses to display my accounts that it
> >> said it
> >> > >> created.
> >> > >> without being able to look at the source for at least the
> >> AccountsTester
> >> > >> app, I'm pretty stuck right now...
> >> > >> Does anyone out there have ANY useful information on how to use this
> >> > >> stuff?   Or is it all locked up in a buttbuddy secret vault between
> >> google
> >> > >> and motorola?
>
> >> > >> On Thu, Nov 12, 2009 at 8:27 PM, Jerry Brady <[email protected]
> >> >wrote:
>
> >> > >>> I'm trying to hook up a new account for an application to use that
> >> > >>> will ultimately sync PIM data.  The application is already working
> >> for
> >> > >>> API levels 3 & 4, but at API 5, I'm having some trouble with the
> >> > >>> introduction of accounts and the AccountManager.
>
> >> > >>> I've searched the groups and the docs and gotten part way there, but
> >> > >>> for some reason there isn't any I can get an actual account created.
> >> > >>> I've tried both on the Moto Droid and in the emulator.
>
> >> > >>> I have a service that implements everything as required by the
> >> > >>> documentation for AbstractAccountAuthenticator. I've confirmed that
> >> my
> >> > >>> account is not present my iterating the results from
> >> > >>> AccountManager.getAccounts().
>
> >> > >>> My service's authenticator shows up in when I iterate the result
> >> from
> >> > >>> AccountManager.getAuthenticatorTypes().  The name and package are
> >> both
> >> > >>> listed.
>
> >> > >>> But when I have an activity call to add an account with AddAccount,
> >> > >>> the call returns, but the future bundle never finishes.  There is
> >> > >>> nothing in logs indicates anything is happening and it's almost as
> >> if
> >> > >>> there is an Intent fired by the call to addAccount() that I'm not
> >> > >>> setup to catch.
>
> >> > >>> Since the eclair source isn't available yet, I can't look into it on
> >> > >>> my own and I'm asking for some help from people who know this part
> >> of
> >> > >>> 2.0 or have access to the source to help me find what I am missing.
>
> >> > >>> In my activity, after using an initialized AccountManager to check
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to