I'm going to be trying it on a Droid this morning.

On Nov 21, 10:07 pm, Dan Dumont <ddum...@gmail.com> wrote:
> I get that exception in the emulator ( doesn't reboot though )
>
> I thought it was due to missing pieces of the emulator...
>
>  does logcat output anything?
>
> On Sat, Nov 21, 2009 at 7:07 PM, NitroDesk <gsuku...@gmail.com> wrote:
> > Any of you folks tried this on a Droid?
> > Simply installing the project that contains an Authenticator in the
> > manfest and the other related items seems to cause the "Add Account"
> > option in the account list on te droid to simply reoot the phone with
> > an exception.
> > Anyone else seen this or find a way to avoid this ?
> > -g
>
> > On Nov 21, 9:04 am, Jerry Brady <jerry.br...@gmail.com> wrote:
> > > Dan,
>
> > > Now I see what you are doing in your code and found the reference to
> > > AddAccountExplicitly().   I want to skip returning an intent to fire
> > > the an AccountAuthenticatorActivity and instead to return
> > > KEY_ACCOUNT_NAME and KEY_ACCOUNT_TYPE directly from my
> > > AbstractAccountAuthenticator's addAccount method whereas your code
> > > returns an intent that fires your authentication activity.
>
> > > The main issue for me so far is that I don't see that my
> > > AbstractAccountAuthenticator is ever being instantiated.
>
> > > Cheers,
> > > Jerry
>
> > > On Nov 20, 7:53 am, Dan Dumont <ddum...@gmail.com> 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 <
>
> > > > bhashyam.suku...@gmail.com> 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 <jerry.br...@gmail.com
> > >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 <ddum...@gmail.com> 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 <ddum...@gmail.com>
> > 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 <ddum...@gmail.com>
> > > > >> wrote:
>
> > > > >> > >> I've gotten a bit further than you.
>
> > > > >> > >> The account manager seems to want to store AccountName+Type
> > pairs,
> > > > >> and
> > > > >> > >> have anAccountAuthenticatorhandle the storage and dirty bits of
> > the
> > > > >> actual
> > > > >> > >> authentication and credential storage.
>
> > > > >> > >> You will need to create anAccountAuthenticatorfrom 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;
> > > > >> > >>  }
>
> > > > >> > >> privateAccountAuthenticatorgetSametimeAuthenticator() {
> > > > >> > >>  if (_aa == null)
> > > > >> > >> _aa = newAccountAuthenticator(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 yourAccountAuthenticator:
>
> > > > >> > >> 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:
>
> ...
>
> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to