美文网首页媒体开发
运用 Android 系统自带分享功能

运用 Android 系统自带分享功能

作者: TTTqiu | 来源:发表于2016-09-22 17:57 被阅读7256次

    1. 设置 IntentactionIntent.ACTION_SEND
    2. 把要分享的数据通过 .putExtra() 传入 intent
    3. 设置类型 .setType()
    4. startActivity()
    • 系统会自动识别出能够兼容接受这些数据,且类型相符合的 activity。如果这些选择有多个,则把这些 activity 显示给用户进行选择。
    • 若要响应其他应用的分享,在AndroidManifest里设置<intent-filter>
    5. 如果为intent调用了Intent.createChooser(),那么 Android 总是会显示可供选择。这样有一些好处:
    1. 即使用户之前为这个 intent 设置了默认的 action,选择界面还是会被显示。
    2. 如果没有匹配的程序,Android 会显示系统信息。
    3. 我们可以指定选择界面的标题。

    1. 分享文本内容

            Intent intent1=new Intent(Intent.ACTION_SEND);
            intent1.putExtra(Intent.EXTRA_TEXT,"This is my text to send");
            intent1.setType("text/plain");
            startActivity(Intent.createChooser(intent1,"share"));
    

    2. 分享二进制内容(如图片等)

            Intent intent2=new Intent(Intent.ACTION_SEND);
            Uri uri=Uri.fromFile(new File("/storage/emulated/0/pictures/1474533294366.jpg"));
            intent2.putExtra(Intent.EXTRA_STREAM,uri);
            intent2.setType("image/*");
            startActivity(Intent.createChooser(intent2,"share"));
    

    3. 分享多块内容

            ArrayList<Uri> imageUris = new ArrayList<Uri>();
            Uri imageUri1=Uri.fromFile(new File("/storage/emulated/0/pictures/1474533294366.jpg"));
            Uri imageUri2=Uri.fromFile(new File("/storage/emulated/0/UCDownloads/pictures/319534.jpg"));
            imageUris.add(imageUri1);
            imageUris.add(imageUri2);
    
            Intent intent3 = new Intent();
            intent3.setAction(Intent.ACTION_SEND_MULTIPLE);
            intent3.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
            intent3.setType("image/*");
            startActivity(Intent.createChooser(intent3, "share"));
    

    相关文章

      网友评论

      本文标题:运用 Android 系统自带分享功能

      本文链接:https://www.haomeiwen.com/subject/fsizettx.html