Android——App内文件分享功能
国内的Android开发者,在遇到App内有分享功能时,基本都是对接友盟分享、ShareSDK分享等第三方SDK。简单的集成SDK以及配置之后,即可分享至多个不同App平台。反而很少来使用Android系统原生提供的分享功能。
相比集成第三方分享平台,系统自带的分享功能的优势为:
1、将筛选出手机内所有可以接收该分享的App用于分享(使用第三方指定分享到QQ等App时,该手机内可能并没有安装QQ软件)。
2、对分享的内容、类型限制较小(比如可以文件分享,可以大图分享等,之前使用第三方分享的时候,图片大小会有限制,且支持文件分享的平台较少)。
3、集成和使用简便。代码在后面给出,代码量很少,而且使用系统自带的功能,让人放心。
而使用第三方平台的优势为:
1、内容只能分享到指定App去,而不是一大堆可选,且能保证分享正确性(比如系统自带的分享文件,会有微信朋友圈选项,点击后会提示不支持此种资源)。
2、能统计分享次数(第三方会帮我们统计),分享出去的东西会带上App属性(比如一个链接,会显示是从哪个App分享过来的。原生分享没试过,不知是否也会带)。
// 調用系統方法分享文件public static void shareFile(Context context, File file) {if (null != file && file.exists()) {Intent share = new Intent(Intent.ACTION_SEND);share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));share.setType(getMimeType(file.getAbsolutePath()));//此处可发送多种文件share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);context.startActivity(Intent.createChooser(share, "分享文件"));} else {ToastUtils.showToast("分享文件不存在");}}// 根据文件后缀名获得对应的MIME类型。private static String getMimeType(String filePath) {MediaMetadataRetriever mmr = new MediaMetadataRetriever();String mime = "*/*";if (filePath != null) {try {mmr.setDataSource(filePath);mime = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE);} catch (IllegalStateException e) {return mime;} catch (IllegalArgumentException e) {return mime;} catch (RuntimeException e) {return mime;}}return mime;}
Android——App内文件分享功能相关推荐
- android 分享到微博客户端,Android APP集成新浪微博分享功能
本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...
- Android App内截屏监控及涂鸦功能实现
Android App内截屏监控及涂鸦功能实现 Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操 ...
- android APP内显示PDF文件
android APP内显示PDF文件 最近公司要做一个小功能,显示在APP内部显示pdf文件,刚接到任务感觉非常简单的一小功能,做的时候才发现在真的很不好实现. 因为android的webView与 ...
- Android App接入Facebook分享SDK,概率性无法启动Facebook客户端的问题分析
问题来源 由于我司的android app产品主要是面向海外,因此,app中的分享功能接入facebook分享是必不可少的.最近在接入facebook android sdk进行分享时,发现一个非常奇 ...
- android 后台截屏代码,Android实现截图和分享功能的代码
先给大家展示下效果图吧 直接上代码: xml的布局: android:id="@+id/btn_jp" android:layout_marginTop="10dip&q ...
- ipad android tv,先河私有云持续大动作:继iPad/Android TV端/系统分享功能后,还有新玩法?...
原标题:先河私有云持续大动作:继iPad/Android TV端/系统分享功能后,还有新玩法? 由5.1劳动节伊始,勤劳的先河小蜜蜂们(先河研发人员)可是忙疯了! 首先是经过连日来的挑灯夜战,5月18 ...
- Android App Bundle:动态功能模块
目录 Android App Bundle 创建动态功能模块 动态功能模块 与主模块建立关联 部署应用 按需分发On-Demand 免安装分发 自 2021 年 8 月起,Google Play 将开 ...
- android 截屏 分享,Android应用内截图分享的实现记录
Android应用内截图分享的实现记录 近期的项目中有个需求,需要将某个表示用户身份的页面整个截取下来,分享到微信微博.网上也很多的解决方案,我也分享下我自己的爬坑记录. 需求分析 有个页面,用于展示 ...
- android查看程序缓存文件,Android App的文件缓存目录
Android app的文件缓存目录可以是app内置私有的目录,当然也可以选择外置sdcard目录 内置私有目录 /data/data/[packagename]/files 文件缓存目录,一般存小的 ...
最新文章
- C++——创建类的时候用new与不用new 的区别(转)
- HDU_4014 Discont (water~)
- Java语言编程基础:数组
- java如何arraylist_Java如何使用ArrayList类?
- Redis bgsave 线上分析
- php parse url 中文,php parse_url()函数解析URL用法总结
- 查看xenapp 6.5 LIC版本
- Arduino AT24C02详解读写地址位
- the permission value is offline verifying
- linux系统截图有快捷键吗,Linux下用快捷键截图
- 移动安全 第六天-Iot安全
- 如何通俗易懂地解释什么是SOA?什么是服务治理
- 办公室绿植租赁布置方案
- 支撑小米万亿级的消息队列架构与实践
- 2023河南理工大学计算机考研信息汇总
- 第10章 Python第三方库概览
- Linux:如何让内网的服务器能上网
- 计算机网络--应用层(2)P2P应用
- 如何让自己像打王者荣耀一样发了疯、拼了命的学习?
- http://user.qzone.qq.com/383074470/blog/1270631840
热门文章
- python小白入门第二课-标识符数据类型字符串方法
- EI 收录的出版物目录(EI检索目录表格官方下载)
- pentaho-server 与 Pentaho Data Integration(pentaho-kettle)
- 修约函数,四舍六进五单双 的修约规则,给有需要的朋友参考
- 抽奖逻辑java_Java 利用binarySearch实现抽奖计算逻辑
- GAMS系列分享12—GAMS基础知识——模型和求解
- 如何快速制作微信旅游相册?简单操作,效果精美!
- 模板设计模式的两种方式
- 黄冈师范学院计算机科学与技术学院,黄冈师范学院 计算机科学与技术学院 刘小俊老师简介 联系方式 手机电话 邮箱...
- 放置街灯(UVA 10859)