Android调用系统原生分享组件[通俗易懂]

Android调用系统原生分享组件[通俗易懂]想必做Android开发都会遇到的需求——分享。当然实现的需求和方式的也都各自不一,有接入某个app的SDK进行分享,也有集成第三方平台的例如友盟等等…接下来所要说到的是Android系统提供的分享组件。分享组件能够自动的检索到可以分享app然后将分享内容带入 当然这个也会有所限制的,会有个别app只能分享单一项:“文字+图片”、“图片”、“文字” 好处就是轻量级、避免导入其它jar包或依赖、可减少apk体积Filefile=newFile(filePath

大家好,又见面了,我是你们的朋友全栈君。

想必做Android开发都会遇到的需求——分享。

实现需求和方式也都各自不一,有接入某个app的SDK进行分享,也有集成第三方平台例如友盟等等…

接下来所要说到的是Android系统提供的分享组件,比较易用。

分享组件

  1. 能够自动的检索到可以分享app然后将分享内容带入
  2. 当然这个也会有所限制的,会有个别app只能分享单一项:“文字+图片”、“图片”、“文字”
  3. 好处就是轻量级、避免导入其它jar包或依赖、可减少apk体积
    File file = new File(filePath);
    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());
    Uri uri = Uri.fromFile(file);
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_TEXT, content);
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
    shareIntent.setType("image/*");
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    try {
      shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(Intent.createChooser(shareIntent, "share to"));
    } catch (android.content.ActivityNotFoundException ex) {
      ToastUtils.showByTop(Tools.getString(R.string.share_failed));
    }

介绍:

StrictMode.VmPolic:绕过7.0文件权限

setType:设置分享类型常用也就是:图片、 文字   查看更多戳这?moreType

记得加try catch 避免有的设备出现问题,我这就是一个toast提示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150926.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 磁盘阵列怎么组linux系统,Linux系统下如何设置磁盘阵列?

    磁盘阵列怎么组linux系统,Linux系统下如何设置磁盘阵列?在Linux系统中,磁盘阵列主要通过/etc/raidtab配置文件来控制的。若系统管理员需要实现磁盘阵列的话,就需要手工创建这个配置文件。或者从其他地方复制这个文件,并进行相应的修改。默认情况下,在Linux系统中不会有这个文件。下面笔者就对这个文件中的主要参数进行讲解,帮助大家建立一个正确的磁盘阵列配置文件。参数一:raid-level指定磁盘阵列的类型。  磁盘阵列到目前为止,有不下于十种…

  • Linux压缩打包命令——tar、zip、unzip

    打包跟压缩的区别:打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;tar命令tar命令参数前面加”-“与不加“-”的区别:tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在与linux风…

  • vb做动态爱心代码(c语言表白代码立体爱心)

    前几天给大家放一个C语言实现心形表白功能的程序,许多小白觉得有意思,今天给大家再放一个更炫酷的表白程序,有需要的童鞋拿去吧~先看看效果图吧:因为是动图,所以只能象征性给大家截图啦~怎么样?童鞋们,好看吗?实际运行起来更炫哦~想表白的小伙伴拿去吧~不谢不谢~咩哈哈哈!上源码!#include#include#include#defineI20#defineR340intmain…

  • 小草1.3.0

    小草1.3.0VERSION转载于:https://www.cnblogs.com/llw87/p/10149903.html

  • 安卓取消home键(7P)

    在androidP版本上想要屏蔽某一个应用界面的HOME键和RCENT键需要怎么做(1)其实也不用多复杂,应用首先在清单文件中获得STATUS_BAR权限<uses-permissionandroid:name=”android.permission.STATUS_BAR”/>(2)然后我们需要在该Activity的oncreat方法中去屏蔽,记住,一定要在setCon…

  • sched.h (版本4.16.7全部内容)

    sched.h (版本4.16.7全部内容)/*SPDX-License-Identifier:GPL-2.0*/#ifndef_LINUX_SCHED_H#define_LINUX_SCHED_H/**Define’structtask_struct’andprovidethemainscheduler*APIs(schedule(),wakeupvariants,etc.)*/…

    2022年10月22日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号