Just filed a case for this:

http://code.google.com/p/android/issues/detail?id=5009

On Nov 23, 1:47 pm, Jerry Brady <[email protected]> wrote:
> Dan,
>
> My code and yours both work on the Droid, but there are some nasty
> side-effects.  After adding an account with your application (or mine)
> whenever you visit the "Accounts & Sync" settings screen, the system
> crashes hard and reboots.
>
> 11-23 13:21:34.863: WARN/dalvikvm(1011): threadid=13: thread exiting
> with uncaught exception (group=0x4001b180)
> 11-23 13:21:34.863: ERROR/AndroidRuntime(1011): Uncaught handler:
> thread android.server.ServerThread exiting due to uncaught exception
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011): *** EXCEPTION IN
> SYSTEM PROCESS.  System will crash.
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):
> java.lang.NullPointerException
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> com.android.settings.ManageAccountsSettings.onSyncStateUpdated
> (ManageAccountsSettings.java:187)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> com.android.settings.ManageAccountsSettings.onAccountsUpdated
> (ManageAccountsSettings.java:244)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> android.accounts.AccountManager$10.run(AccountManager.java:389)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> android.os.Handler.handleCallback(Handler.java:587)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> android.os.Handler.dispatchMessage(Handler.java:92)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> android.os.Looper.loop(Looper.java:123)
> 11-23 13:21:34.879: ERROR/AndroidRuntime(1011):     at
> com.android.server.ServerThread.run(SystemServer.java:428)
>
> I'm looking at the source now to see if I can figure out what's going
> on.  If necessary, I'll file a case with the project if I find a bug
> in the Android source.
>
> Cheers,
> Jerry
>
> On Nov 23, 8:18 am, Jerry Brady <[email protected]> wrote:
>
>
>
> > I'm going to be trying it on a Droid this morning.
>
> > On Nov 21, 10:07 pm, Dan Dumont <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
>
> > > > > > Yes.   But I make the AddAccountExplicitly call in my Authenticator.
> > > >  You
> > > > > > use theAccountManagerto 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 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[]...
>
> 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