Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android : Handle OAuth callback using intent-filter

Tags:

android

oauth

I am building an Android application that requires OAuth. I have all the OAuth functionality working except for handling the callback from Yahoo. I have the following in my AndroidManifest.xml :

  <intent-filter>
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:host="www.test.com" android:scheme="http"></data> 
  </intent-filter>

Where www.test.com will be substituted with a domain that I own. It seems :

  • This filter is triggered when I click on a link on a page.
  • It is not triggered on the redirect by Yahoo, the browser opens the website at www.test.com
  • It is not triggered when I enter the domain name directly in the browser.

So can anybody help me with

  • When exactly this intent-filter will be triggered?
  • Any changes to the intent-filter or permissions that will widen the filter to apply to redirect requests?
  • Any other approaches I could use?

Thanks for your help.

like image 331
Dave Allison Avatar asked Apr 19 '10 07:04

Dave Allison


1 Answers

So I changed my approach to use a custom scheme, rather than a web URL and it now all works as expected.

So my callback URL is:
X://callback

and my intent-filter is:

<intent-filter>
    <action android:name="android.intent.action.VIEW"></action> 
    <category android:name="android.intent.category.DEFAULT"></category> 
    <category android:name="android.intent.category.BROWSABLE"></category> 
    <data android:scheme="X"></data> 
</intent-filter>

where X is the name of my customer scheme.

like image 142
Dave Allison Avatar answered Oct 19 '22 16:10

Dave Allison