Share images to another apps

混江龙づ霸主 提交于 2019-12-10 10:35:05

问题


In my app I can get a screen capture and save it to the sd card. I was wondering if it's possible to share it from my app to Whatsapp, for example, as the gallery app does.

In the gallery, you have the chance of "sharing" the file to Whatsapp, Facebook or Twitter.

Can i do the same from my app? How?

Thank you!


回答1:


Yes, you can.

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@SuppressWarnings( "deprecation" )
public static Intent shareImage(Context context, String pathToImage) {
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    else
        shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);

    shareIntent.setType("image/*");

    // For a file in shared storage.  For data in private storage, use a ContentProvider.
    Uri uri = Uri.fromFile(context.getFileStreamPath(pathToImage));
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
    return shareIntent;
}

Here is a detailed link: http://android-developers.blogspot.com/2012/02/share-with-intents.html

So just add a "share" button and execute startActivity(shareIntent).

Good luck




回答2:


Conbining both answers i got it! Thank you guys!

private void shareIt() {
    //sharing implementation here

    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
    sharingIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    sharingIntent.setType("image/*");

    Uri uri = Uri.fromFile(file);
    sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);

    startActivity(Intent.createChooser(sharingIntent, "Share via"));

    }


来源:https://stackoverflow.com/questions/12236778/share-images-to-another-apps

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