Hi Paul,

Bit more progress from "java.lang.SecurityException" ...

I added Autheticator service code to Android "AndroidManifest.xml".

Here is the piece of code:-

<service android:name="AccountAuthenticatorService"
   android:exported="true"
   android:process=":auth">
   <intent-filter>
        <action android:name="android.accounts.AccountAuthenticator" />
   </intent-filter>
   <meta-data android:name="android.accounts.AccountAuthenticator"
        android:resource="@xml/authenticator"
   />
</service>


Here are my xml files:-
<!-- authenticator.xml -->
<?xml version="1.0" encoding="utf-8"?>
      <account-authenticator xmlns:android="http://schemas.android.com/
apk/res/android"
          android:accountType="com.google"
          android:icon="@drawable/icon"
          android:smallIcon="@drawable/icon"
          android:label="app_name"
          android:accountPreferences="@xml/
account_preferences"
/>

AND

<!-- account_preferences.xml -->
<?xml version="1.0" encoding="utf-8"?>
  <PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android";>
          <PreferenceCategory
                          android:title="General Settings" />
          <PreferenceScreen
                  android:key="account_settings"
                  android:title="Account Settings"
                  android:summary="Sync frequency, notifications, etc.">
                  <intent
                        android:action="account_settings.ACTION"
                        android:targetPackage="account_settings.package"
                        android:targetClass="account_settings.class"
                  />
          </PreferenceScreen>
  </PreferenceScreen>


Now I am getting "NullPointerException" and there is no stacktrace or
inner message, both are null.

Please let me know if I am missing anything.

Thanks,
-Rajendra.


On Apr 29, 12:03 pm, Rajendra <[email protected]> wrote:
> Hi,
>
> When I do following -
> Account[] accounts = accountManager.getAccountsByType("com.google");
> I get accounts array empty. No accounts are there. Then I tried to
> Create account using ...
>
> final AccountManager manager = AccountManager.get(this);
> String AccountType = "com.google";
> Account account = new Account(cr.username, AccountType);
> boolean result  = manager.addAccountExplicitly(account, cr.password,
> null);
>
> I got "java.lang.SecurityException: caller
> uid 10027 is different than the authenticator's uid.
>
> When I try to add account using ...
> AccountManagerFuture<Bundle>  future;
> future = manager.addAccount(AccountType, null, null, null, null, null,
> null);
> try
> {
>     Bundle b = future.getResult();}
>
> catch(Exception ex)
> {
>     int t =0;}
>
> I got exception as "android.accounts.AuthenticatorException: bind
> failure"
>
> Am I missing anything?
>
> On Apr 27, 1:31 am, "Paul (Google)" <[email protected]> wrote:
>
> > Hi Rajendra,
>
> > It looks like you're making some great progress; you're pretty much on
> > track as far as I can tell!  Using the AccountManager, you should be
> > able to use an account stored on the Android phone to connect to
> > Google services.  The example you found for doing this looks similar
> > to the following:
>
> >http://developer.android.com/resources/samples/SampleSyncAdapter/inde...
>
> > From what I understand, you may not need to create a new account, but
> > you can use a user's Google Android account to get a token to access
> > Google services.  I'm sill getting up to speed on Android, so the
> > Android developer forum is likely a much better resource at the
> > moment, but the following might be a good start:
>
> >     AccountManager accountManager = AccountManager.get(this);
> >     Account[] accounts =
> > accountManager.getAccountsByType("com.google");
> >     String authToken =
> > accountManager.blockingGetAuthToken(accounts[0], null, true);
>
> > The next step will be to use the authToken to interact, indirectly,
> > with Health.  I chatted with some Android, Health, and OAuth engineers
> > at Google last week, and I have a rough outline of an architecture
> > that we should be able to use.  I will be documenting the architecture
> > to make it more clear, but the general structure is to have your
> > Android phone connect to a intermediary web application that will
> > access data in Health (Android -> Web App -> Health).  The purpose of
> > the web app is to allow your system (Android app + web app) to
> > interact with Health as an "authorized application", which is
> > documented in the Health developer docs.
>
> > Setting up an authorized 
> > application:http://code.google.com/apis/health/getting_started.html#DomainRegistr...
>
> > Authenticating web app to Health via AuthSub (OAuth should work
> > similarly):http://code.google.com/apis/health/docs/2.0/developers_guide_java.htm...
>
> > Example code for interfacing with Health 
> > (GData):http://gdata-java-client.googlecode.com/files/gdata-samples.java-1.41...
>
> > For the intermediary web app, you may want to look at using AppEngine,
> > which includes APIs for Google 
> > authentication.http://code.google.com/appengine/docs/java/gettingstarted/
>
> > So your Android device will communicate with your web app, using the
> > authToken from the Android AccountManager, and the web app will
> > communicate to Health using AuthSub/OAuth, GData, and CCR.  One detail
> > that I'm working on now is how a user will grant your authorized web
> > application access to their Health profile.  This may require your
> > Android phone to open a browser window if a user hasn't previously
> > allowed your web application to access their profile.
>
> > A working example will be the absolute best documentation of how this
> > will all fit together.  If anyone has any code to share, please don't
> > hesitate to contribute!
>
> > Cheers!
> > p...@google
>
> > On Apr 26, 12:24 am, Rajendra <[email protected]> wrote:
>
> > > Paul,
>
> > > I have started using "GData Java Client v2" and trying to use given
> > > sample picassa applicaion.
>
> > > I am stuck with the following. When I try to create google account on
> > > my emulator.
>
> > > final AccountManager manager = AccountManager.get(this);
> > > String AccountType = "com.google";
> > > Account account = new Account(cr.username, AccountType);
> > > boolean result  = manager.addAccountExplicitly(account, cr.password,
> > > null);
>
> > > The last statement gives me error "java.lang.SecurityException: caller
> > > uid 10027 is different than the authenticator's uid", I tried to find
> > > the cause but couldn't get it.
>
> > > I have 
> > > checkedhttp://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/;
>
> > > Please let me know if anyone has worked on this.
>
> > > Thanks,
> > > -Rajendra
>
> > > On Apr 22, 12:29 pm, Rajendra <[email protected]> wrote:
>
> > > > Thank you Paul,
>
> > > > These forward pointers will really help  me. I Checked "GData Java
> > > > Client API v2"  source code but it seems to be incomplete
> > > > as I checked source java files(Especially Health related files).
>
> > > > I am developing a stand-alone application which authenticates with
> > > > gmail login and reads user health data.
>
> > > > Right now I am trying with OAuth but not very sure about it as I can
> > > > see very few resources around.
>
> > > > Please let me know if you have any feedback!
>
> > > > -Rajendra
>
> > > > On Apr 22, 4:45 am, "Paul (Google)" <[email protected]> wrote:
>
> > > > > Quick correction on my last post.  I should have wrote "If you *are*
> > > > > developing a
> > > > > stand-along Android application...".
>
> > > > > p...@google
>
> > > > > On Apr 21, 2:23 pm, "Paul (Google)" <[email protected]> wrote:
>
> > > > > > Hi Rajendra,
>
> > > > > > The AuthSub example that you found is for a web application
> > > > > > authenticating a user.  The httpServletRequest would likely be 
> > > > > > passed
> > > > > > into a Servlet by a web app. server via the doGet(ServletRequest,
> > > > > > ServletResponse) or doPost(..) method.  If you're not developing a
> > > > > > stand-along Android application, you'll either likely want to look
> > > > > > into OAuth for installed applications, or consider trying the GData
> > > > > > Java Client API v2, which includes Android support.
>
> > > > > > For OAuth, you'll likely want to start at the following 
> > > > > > site:http://code.google.com/apis/accounts/docs/OAuthForInstalledApps.html
>
> > > > > > Also, there seems to be a very popular blog on Android+OAuth 
> > > > > > at:http://donpark.org/blog/2009/01/24/android-client-side-oauth
>
> > > > > > Finally, the GData Java Client v2 can be found 
> > > > > > at:http://code.google.com/p/gdata-java-client/wiki/Version2
>
> > > > > > I hope that these help!  Please be sure to post your findings back 
> > > > > > to
> > > > > > the forums!
>
> > > > > > Cheers!
> > > > > > p...@google
>
> > > > > > On Apr 21, 5:25 am, Rajendra <[email protected]> wrote:
>
> > > > > > > hi,
>
> > > > > > > I am developing an application to access google health data on
> > > > > > > android. I am using gdata library(gdata-src.java-1.41.1 on 2.1
> > > > > > > platform)
>
> > > > > > > I am referring to article on 
> > > > > > > pagehttp://code.google.com/apis/gdata/docs/auth/authsub.html
>
> > > > > > > The following line:
>
> > > > > > > String singleUseToken =
> > > > > > > AuthSubUtil.getTokenFromReply(httpServletRequest.getQueryString());
>
> > > > > > > What does httpServletRequest refer to ? There is no declaration/
> > > > > > > definition provided in the article.
>
> > > > > > > If it is related to DoGet, DoPost methods, then how does it work ?
>
> > > > > > > Please provide me the inputs.
>
> > > > > > > Thanks and regards,
> > > > > > > Rajendra Waghmare.
>
> > > > > > > --
> > > > > > > You received this message because you are subscribed to the 
> > > > > > > Google Groups "Google Health 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 
> > > > > > > athttp://groups.google.com/group/googlehealthdevelopers?hl=en.
>
> > > > > > --
> > > > > > You received this message because you are subscribed to the Google 
> > > > > > Groups "Google Health 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 
> > > > > > athttp://groups.google.com/group/googlehealthdevelopers?hl=en.
>
> > > > > --
> > > > > You received this message because you are subscribed to the Google 
> > > > > Groups "Google Health 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 
> > > > > athttp://groups.google.com/group/googlehealthdevelopers?hl=en.
>
> > > > --
> > > > You received this message because you are subscribed to the Google 
> > > > Groups "Google Health 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 
> > > > athttp://groups.google.com/group/googlehealthdevelopers?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Google Health 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 
> > > athttp://groups.google.com/group/googlehealthdevelopers?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google Groups 
"Google Health 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/googlehealthdevelopers?hl=en.

Reply via email to