Alfred  Huang
Alfred Huang

Reputation: 463

Activity not appearing on Chooser dialog when using Implicit Intent

I would like to start MyBrowser, an application that show web pages like the built-in Browser app, from another application, IntentsLab.

I followed Launch custom android application from android browser to setup the intent, and also the official Intent and Intent-filters guide which does says "You need to include CATEGORY_DEFAULT to receive implicit intents".

So my intent-filter is so written:

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

The code of the parent activity in IntentsLab to start the new activity is:

    Intent baseIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
    String title = "Use Browser";        
    Intent chooserIntent = Intent.createChooser(baseIntent, title);        
    if(chooserIntent != null)   startActivity(chooserIntent);

The MyBrowser application does not show up on the chooser dialog. However, when I created an Activity inside the IntentsLab and added to it a same intent-filter, this activity shows up in the chooser dialog. Is there anything wrong with the code? Or is there any difference between implicit intent towards Activities in a same Application with those in a different one?

Upvotes: 1

Views: 1590

Answers (1)

user4160330
user4160330

Reputation: 21

Provided my AndroidManifest.xml for the MyBrowserActivity. It works perfectly for me. Even I am doing the coursera Android programming class :)

<activity android:name=".MyBrowserActivity" android:label="@string/app_name">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />

    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  <!-- TODO - Add necessary intent filter information so that this
                    Activity will accept Intents with the
                    action "android.intent.action.VIEW" and with an "http"
                    schemed URL -->
</activity>

Upvotes: 2

Related Questions