BeBoo Bailey BeBoo Bailey - 1 year ago 132
Android Question

Launch Activity From URL

I am trying to have my application launch when the user browses to a certain url. I have found a few examples and they all have the same things in the manifests but it's not working for me. I have put the intent-filter under an Activity as well as a Receiver.

Here is my manifest snippet:

<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="" android:scheme="http"></data>

When under the Activity, I tried using onNewIntent and when it was under a Receiver, I tried using onReceiveIntent, both with a simple Log.i call to see if it fired or not. I am not having much luck.

Answer Source

I use this in my manifest.xml file:

<activity android:name=".SomeName">
        <category android:name="android.intent.category.ALTERNATIVE" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:host="" android:scheme="http" />  

This will start activity SomeName. I don't use www in the android:host part maybe that will make a difference.

When the activity starts you can get the data that's behind the .com using (for example):

Uri data = getIntent().getData();
if(data != null && data.getPathSegments().size() >= 2){
    List<String> params = data.getPathSegments();
    String somestuff = params.get(0);

Edit: If you wan't to be able to check the host from within the activity, use this method:

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download