android custom url scheme..?

Viewed 54872

Im trying to create my own url scheme so my android app can get called via an URL but for now I dont have a success.

Im trying to have this url to work : cedemo://com.cedemo.scan?X=toto

Here is part of my manifest file :

<activity android:name=".Gallery1" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.GALLERY" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="cedemo" android:host="com.cedemo.scan" />

        </intent-filter>
</activity>

Does anyone can help telling me what is wrong ? Also, if someone find what is wrong, can someone tell me how I read the "X" variable from inside the android code from my app ?


Update:

Update: I did the modification of the action (as advised in one of the answers) and it's worked fine. The thing is that I still cannot get the url variable value. Here is the code I tried.

final Intent intent = getIntent();
final String myScheme=intent.getScheme();
final Bundle myBundle=intent.getExtras();
final boolean inContestKey;
if (myBundle != null) {
    inContestKey=myBundle.containsKey("inContest");
}
final Uri myURI=intent.getData();
final String value;
if (myURI != null) {
    value = myURI.getQueryParameter("inContest");
}

But I receiving null from all the functions… what else can i do?

May be I should explain better the context of my software:

  1. My software is started
  2. My software launch then the browser
  3. the user click a link in the browser and the browser go to the url scheme, back to the software with a variable "X" (for example)
  4. the software should read the variable "X"

But in my case : myScheme, myBundle, myURI are set to null.

Any ideas ?


Update:

I found the answer is that you have to be in the main activity to do that.

3 Answers
Related