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