Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I handle the browser's "share page" intent in android?

I read here ( http://androidlittle.blogspot.com/2009/08/intent-filter-for-share-link.html ) what intent-filter is required to handle the "share link" intent that the android web browser sends. I have placed this inside an block in my AndroidManifest.xml like so:

    <activity android:name=".ShareLink">         <intent-filter>             <action android:name="android.intent.action.SEND" />             <category android:name="android.intent.category.DEFAULT" />             <data android:mimeType="text/plain" />         </intent-filter>         <meta-data/>     </activity> 

I cannot for the life of me get this to be triggered though. When I share a link in the android browser, the emulator log shows it's creating a chooser intent, but doesn't give the details of the intent the chooser is acting on. No chooser window pops up, and the intent gets handled by the SMS application.

I have also tried kicking off the intent manually:

adb shell am start -D -a android.intent.action.SEND -c android.intent.category.DEFAULT -t text/plain -d http://google.com/ 

but the response I get is:

Starting: Intent { act=android.intent.action.SEND cat=[android.intent.category.DEFAULT] dat=http://google.com/ typ=text/plain } Error: Activity not started, unable to resolve Intent { act=android.intent.action.SEND cat=[android.intent.category.DEFAULT] dat=http://google.com/ typ=text/plain flg=0x10000000 } 

Can anyone tell me what I'm doing wrong? My main (launcher) activity works fine, so I assume there is no issue with installation on the emulator.

like image 455
gfxmonk Avatar asked May 22 '10 01:05

gfxmonk


People also ask

How do I open a URL from an intent?

To open a URL/website you do the following: String url = "http://www.example.com"; Intent i = new Intent(Intent. ACTION_VIEW); i.

What are the intent actions in android?

An Intent object carries information that the Android system uses to determine which component to start (such as the exact component name or component category that should receive the intent), plus information that the recipient component uses in order to properly perform the action (such as the action to take and the ...

What is intent setType in android?

setType(String mimeType) input param is represent the MIME type data that u want to get in return from firing intent(here myIntent instance). by using one of following MIME type you can force user to pick option which you desire. Please take a Note here, All MIME types in android are in lowercase.

Is intent a class in android?

The LabeledIntent is the subclass of android. content. Intent class.


1 Answers

whoops!

Turns out, I had got the package installed initially but upon reinstallation it was silently failing. In between those two builds I fixed the manifest to be as you see above - the installed version didn't have the intent-filters specified, which obviously wouldn't work.

Guess I'll leave this here in case someone has the same need? Or should I just delete it?

like image 71
gfxmonk Avatar answered Oct 04 '22 10:10

gfxmonk