关于在分享列表添加应用

「How to make my Android app appear in the share list of another specific app」

「android系统分享功能,将自己的APK加入可分分享的应用列表」

目前业务需求,需要在Android系统下,用户从文件管理器长按文件分享的时候,能出现我们的App列表。

参考了上面两篇文章的操作,尝试在Manifest里面直接添加一个

<intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="*/*" />
</intent-filter>

尝试后在分享列表里面还是无我们App应用,后面将单独的mimeType改为text/plain,之后发现在分享文本文件的时候生效了,测试设备为华为的Mate30。

尝试将上面的代码修改为

<intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="file" /><data android:scheme="content" /><data android:mimeType="*/*" />
</intent-filter>

想直接通过mimeType匹配全部类型的文件,但是发现该配置添加后,无论是打开纯文本文件分享,或者mp3、图片等二进制数据分享都无效,表现的效果为在分享面板无我们的App展示。

之后结合Stack OverFlow(文章一最后的一条Respon)和文章二里面的mimeType,将IntentFilter依次添加不同的mimeType,分享列表随即能展示出我们的应用了;测试设备依旧为华为Mate30,Harmony 2.0系统。

<intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:mimeType="text/plain" /><data android:mimeType="image/*" /><data android:mimeType="application/vnd.ms-powerpoint" /><data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" /><data android:mimeType="application/msword" /><data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /><data android:mimeType="application/vnd.ms-excel" /><data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /><data android:mimeType="application/pdf" /><data android:mimeType="application/zip" /><data android:host="*" /><data android:pathPattern=".*" />
</intent-filter>

总结:

  • Manifest需要添加IntentFilter配置,ACTION需要设置为Intent.SEND,category为default
  • 依次将不同的mimeType添加到IntentFilter上,可能因为兼容问题,不能直接用*/*匹配
  • data里面需要注意不能添加scheme = file或者content,否则无法适配(应该是部分机型的问题)
  • 使用IntentFilter的activity,必须要在里面加上exported = true

Android 在分享列表添加自己的应用相关推荐

  1. uni-app 添加到“用其他应用打开”中、app加入系统分享列表、获取分享的文件

    地址:添加到"用其他应用打开"中.app加入系统分享列表.获取分享的文件 - DCloud 插件市场 添加到"用其他应用打开"中.app加入系统分享列表.获取分 ...

  2. android 文本分页显示,Android查看带有列表视图的分页器并动态添加文本

    我在一个分片活动中有一个Viewpager,它有一个带有编辑文本和发送按钮的botton框架. 在片段布局中,我有一个ListView,并在片段中附加了一个适配器.现在我正在实现从片段中的Parent ...

  3. Android 10.0下拉通知栏 通知列表 添加通知头

    1.概述 在10.0定制化产品开发中,需求要求对SystemUI通知栏ui进行定制,在状态栏展开布局中的通知栏增加通知头文字 2.下拉通知栏 通知列表 添加通知头的核心类 /frameworks/ba ...

  4. android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)

    需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...

  5. android sharesdk分享功能,Android ShareSDK快速实现分享功能

    第一步 :获取ShareSDK 为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可 ...

  6. vue 分享微信传参_vue实现微信分享链接添加动态参数的方法

    微信分享时 分享链接携带参数可能不是固定的 需要在分享的前一刻才知道 这里就是动态设置分享链接的基本写法 代码不是那么详尽 但大致流程如下 1.安装引用jssdk npm install --save ...

  7. Android APP分享功能实现 .

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料 安卓分享功能也可以使用mob提供的SDK来开发分享功能,短信验证功能.http://www.mob ...

  8. Android APP分享功能实现

    由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流 ...

  9. com.android.kyj.onj,Android 自学之列表选择框Spinner

    列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...

最新文章

  1. python代码执行过程记录_详解python程序中记录日志的方法
  2. java微积分计算步骤_一次刨根问底的收获——从一道微积分题说开去
  3. C# 存储过程 分页
  4. 《2022博客之星拉票专用帖》
  5. 锁相环环路滤波器计算公式_锁相环计算方法
  6. 计算机软件429修复工具,Soft4Boost Any Uninstaller
  7. spark RDD创建方式:parallelize,makeRDD,textFile
  8. C++笔记-远程线程注入
  9. 使用java 遍历文件夹
  10. 大数据学习笔记19:MR案例——汇总三科成绩表文件
  11. android学习笔记---37_采用广播接收者实现系统短信操作_获取短信_收发短信等
  12. javaSe--integer与int
  13. 《精通.Net核心技术》
  14. 【重点】剑指offer——面试题53:正则表达式匹配
  15. BZOJ2303 APIO2011方格染色(并查集)
  16. p2p终结者局域网控制软件的介绍和用法
  17. 多人对战中国象棋文档
  18. 【PS基础】-照片拼接基础
  19. 中南民族大学 计算机科学学院,中南民族大学 计算机科学学院 蒋天发老师简介 联系方式 手机电话 邮箱...
  20. 从vue文件中抽取出子组件的流程及过程中踩过的坑

热门文章

  1. oracle utl_smtp,Oracle 11g 环境下,利用utl_smtp创建发送邮件的存储过程
  2. 罗克韦尔L85E plc程序下载和上载
  3. svn 命令行创建分支、合并主干
  4. Splay(不是Spaly,也不是slay,附两道练(mu)习(ban)题)
  5. 基于C#和SQL SERVER的汽车配件仓储管理系统
  6. history.pushState()
  7. java冒泡排序打印实时动态图(借鉴+改动)
  8. Application Server
  9. java容器系列一(java容器Collection概述)
  10. 粒径测量中的D10 D50 D90的含义