Make Android app listen to shared links

五迷三道 提交于 2019-11-27 12:54:37

At the very bare minimum you need:

<activity android:name=".ShareActivity">
    <intent-filter
        android:label="Share with my app">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

in your manifest...which will at least make it show up in the 'share' listing.

The most important part you are missing is:

<action android:name="android.intent.action.SEND" />

To make it actually do something, you need an Activity.

This may help too: http://sudarmuthu.com/blog/sharing-content-in-android-using-action_send-intent

Additional Info:

<activity android:name=".ShareActivity">
<intent-filter
    android:label="Share with my app">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>
</activity>

There the <data android:mimeType will limit what you respond to, if you want to limit your app's response.

Oluwatumbi

To get the image in your activity, use Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM); for a single image, or use ArrayList<Uri> imgUris = i.getParcelableArrayListExtra(Intent.EXTRA_STREAM); for a list of images:

Intent i = getIntent();
Bundle extras = i.getExtras();
String action = i.getAction();

// if this is from the share menu
if (Intent.ACTION_SEND.equals(action)) {   
    if (extras.containsKey(Intent.EXTRA_STREAM)) {
        Uri imgUri = (Uri) i.getParcelableExtra(Intent.EXTRA_STREAM);
        // Do job here
    }
}

Hope that helps

You need to create an Activity with appropriate Intent filter. Read documentation about Intent, it explains all this with examples.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!