Android官方开发文档Training系列课程中文版:分享简单数据之从其它APP接收简单数据

原文地址:http://android.xsoftlab.net/training/sharing/receive.html

正如你的程序可以发送数据给其它程序,那么你也可以轻松的接收数据。想象一下用户如何与你的程序交互,以及你想从其它应用程序接收的数据类型。举个例子,一个社交网络的程序可能对文本内容更感兴趣,比如一个有意思的Web地址,Google+ APP允许接收文本、单张图片或者多张图片。通过这个APP,用户可以很轻松的从Android图库APP启动一个Google+的发送照片任务。

更新你的清单文件

意图过滤器告知系统可以接收什么样的意图。举个例子,如果应用程序可以接收并处理文本内容,和任何类型的一张图片,或者任何类型的多张图片,你的清单文件应该声明成这样:

<activity android:name=".ui.MyActivity" ><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="text/plain" /></intent-filter><intent-filter><action android:name="android.intent.action.SEND_MULTIPLE" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter>
</activity>

Note:有关更多意图过滤器的信息以及意图的分辨,请阅读: Intents and Intent Filters

当另一个程序通过构造一个意图并且传递给startActivity()并尝试分享这几种类型的任意一种时,你的程序会在意图选择器中列出各种选项。如果用户选择了你的程序,那么相应的activity会被启动。然后由你的代码和UI来妥善的处理这些内容。

处理到来的内容

为了处理由Intent传递过来的内容,开始调用getIntent()方法获得Intent对象。一旦你获得了这个对象,你可以检查其中的内容然后在决定接下来怎么做。记住一点,如果这个activity可以由系统的其它部分启动,比如系统的桌面,然后你需要在执行检查的时候将这种情况考虑在内。

void onCreate (Bundle savedInstanceState) {...// Get intent, action and MIME typeIntent intent = getIntent();String action = intent.getAction();String type = intent.getType();if (Intent.ACTION_SEND.equals(action) && type != null) {if ("text/plain".equals(type)) {handleSendText(intent); // Handle text being sent} else if (type.startsWith("image/")) {handleSendImage(intent); // Handle single image being sent}} else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) {if (type.startsWith("image/")) {handleSendMultipleImages(intent); // Handle multiple images being sent}} else {// Handle other intents, such as being started from the home screen}...
}
void handleSendText(Intent intent) {String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);if (sharedText != null) {// Update UI to reflect text being shared}
}
void handleSendImage(Intent intent) {Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);if (imageUri != null) {// Update UI to reflect image being shared}
}
void handleSendMultipleImages(Intent intent) {ArrayList<Uri> imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);if (imageUris != null) {// Update UI to reflect multiple images being shared}
}

Caution:检查到来的附加数据要格外当心,你永远不会知道其它应用程序会发来什么。举个例子,比如可能设置了错误的MIME类型,或者发送来的图像可能非常的大。还要记得要在单独的线程中处理二进制数据,而不是主线程。

更新UI可以像填充一个EditText一样简单,否则的话它会像对图片应用有趣图片过滤器一样复杂,这需要您的应用程序明确接下来将要做什么。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯-视频打标签算法探讨

腾讯-视频打标签算法探讨&#xff1a;https://cloud.tencent.com/developer/article/1191746

LeetCode 106. 已知中序后序 求二叉树

文章目录1. 题目2. 解题2.1 递归2.2 循环1. 题目 类似题目LeetCode 105. 已知前序&中序 求二叉树 2. 解题 2.1 递归 递归法&#xff0c;后序最后一个是根节点 class Solution { public:TreeNode* buildTree(vector<int>& inorder, vector<int>& p…

React Native工程中TSLint静态检查工具的探索之路

背景 建立的代码规范没人遵守&#xff0c;项目中遍地风格迥异的代码&#xff0c;你会不会抓狂&#xff1f; 通过测试用例的程序还会出现Bug&#xff0c;而原因仅仅是自己犯下的低级错误&#xff0c;你会不会抓狂&#xff1f; 某种代码写法存在问题导致崩溃时&#xff0c;只能全…

做一个好的搜索引擎有多难

文&#xff5c;见鹿知乎本文已获作者授权&#xff0c;禁止二次转载前言搜索引擎是个极其复杂的系统工程&#xff0c;搜索引擎上并不会大力出奇迹&#xff0c;需要一点点打磨。在搜索引擎上&#xff0c;q-u相关性计算是基础&#xff0c;但仍需要考虑其他很多因素&#xff0c;其中…

Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为

原文地址&#xff1a;http://android.xsoftlab.net/training/sharing/shareaction.html 从Android4.0开始&#xff0c;使用ActionProvider可以更方便的在ActionBar上实现一个有效的、用户友好的分享按钮。一个ActionProvider一旦依附到了ActionBar的菜单条目上&#xff0c;它会…

开源开放 | OpenKG组织发布第二批并更新近十个新冠知识图谱开放数据集

2020年2月11日&#xff0c;世界卫生组织宣布了新型冠状病毒肺炎官方正式命名为 COVID-19&#xff0c;21日国家卫健委决定与世界卫生组织保持一致&#xff0c;中文名称不变。随着关于新型冠状病毒病毒疫情的不断发展&#xff0c;有关疫情的各类信息也在不断更新。OpenKG 紧随疫情…

事件抽取中的“门面技术”:事件名称生成浅谈

6月10日&#xff0c;“网信中国”微信公众号发布消息称&#xff1a;微博热搜榜、热门话题榜暂停更新一周&#xff0c;这使得很多热榜平台都受到波及&#xff0c;而在吃瓜之余&#xff0c;我们更进一步地思考热点榜单以及热点名称生成背后的技术&#xff0c;并发出两连问&#x…

保障IDC安全:分布式HIDS集群架构设计

背景 近年来&#xff0c;互联网上安全事件频发&#xff0c;企业信息安全越来越受到重视&#xff0c;而IDC服务器安全又是纵深防御体系中的重要一环。保障IDC安全&#xff0c;常用的是基于主机型入侵检测系统Host-based Intrusion Detection System&#xff0c;即HIDS。在HIDS面…

LeetCode 1154. 一年中的第几天

1. 题目 给你一个按 YYYY-MM-DD 格式表示日期的字符串 date&#xff0c;请你计算并返回该日期是当年的第几天。 通常情况下&#xff0c;我们认为 1 月 1 日是每年的第 1 天&#xff0c;1 月 2 日是每年的第 2 天&#xff0c;依此类推。每个月的天数与现行公元纪年法&#xff…

数据有偏差,照样能学对!20年前就有这么强的算法了?

文 | 白鹡鸰给小铁比了个心编 | 小轶背景“每个人都依赖自己的知识和认知&#xff0c;同时又为之束缚&#xff0c;还将此称为现实&#xff1b;但知识和认识是非常暧昧的东西&#xff0c;现实也许不过是镜花水月——人们都是活在偏见之中的&#xff0c;你不这样认为吗&#xff1…

Android官方开发文档Training系列课程中文版:分享文件之配置文件共享

原文地址&#xff1a;http://android.xsoftlab.net/training/secure-file-sharing/index.html 导言 APP经常需要给其它的APP提供一个或多个文件。举个例子&#xff0c;相册APP可能需要提供文件以供编辑&#xff0c;或者一个文件管理的APP可能希望用户在外部存储器中的两个区域…

论文浅尝 | 基于图卷积网络的跨语言图谱实体对齐

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究兴趣&#xff1a;知识图谱问答本文提出了一种基于图卷积网络的跨语言实体对齐方法&#xff0c;通过设计一种属性 embedding 用于 GCN 的训练&#xff0c;发现GCN能同时学习到特征 embedding 和属性 e…

面向中文自然语言处理的60余类系统开源实践项目与工业探索索引

项目介绍 面向中文自然语言处理的六十余类实践项目及学习索引&#xff0c;涵盖语言资源构建、社会计算、自然语言处理组件、知识图谱、事理图谱、知识抽取、情感分析、深度学习等几个学习主题。包括作者个人简介、学习心得、语言资源、工业落地系统等&#xff0c;是供自然语言处…

Android官方开发文档Training系列课程中文版:分享文件之分享一个文件

原文地址&#xff1a;http://android.xsoftlab.net/training/secure-file-sharing/share-file.html 一旦APP设置通过URI的方式共享文件&#xff0c;你需要响应其它APP请求这些文件的请求。响应这些请求的一种方式是&#xff0c;在服务端APP上提供一个文件选择接口&#xff0c;…

大众点评搜索基于知识图谱的深度学习排序实践

1. 引言 挑战与思路 搜索是大众点评App上用户进行信息查找的最大入口&#xff0c;是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样&#xff0c;并且由于对接业务种类多&#xff0c;流量差异大&#xff0c;为大众点评搜索&#xff08;下文简称点评搜索&#xff09;…

论文浅尝 \ 联合知识图谱实例和本体概念的通用表示学习

论文笔记整理&#xff1a;周虹廷&#xff0c;浙江大学研究生。研究方向&#xff1a;知识图谱&#xff0c;图表示学习等。论文链接&#xff1a;http://web.cs.ucla.edu/~yzsun/papers/2019_KDD_JOIE.pdf本文是发表在KDD 2019上的关于知识图谱表示学习的论文。现有知识图谱表示模…

手握顶会顶刊论文,自信满满面试算法岗竟被刷?

2020国内深度学习框架领域百花齐放。各大公司也都陆续推出了自己的框架&#xff0c;大大推动了深度学习的发展。深度学习俨然已经渗入到我们生活中的每个角落&#xff0c;给生活带来极大便利。深度学习能够针对生产生活所面临的复杂问题&#xff0c;给出高准确率、操作简易、成…

爬取热门网站的热榜,集中展示

爬取热门网站的热榜&#xff0c;集中展示&#xff1b;Integrate and display hot billboard or ranked topic from hot Chinese websites 抓取知乎热榜数据存入列表 #!/usr/bin/env python # encoding: utf-8__author__ HZTimport requests import re from bs4 import Beaut…

Android官方开发文档Training系列课程中文版:分享文件之请求一个共享文件

原文地址&#xff1a;http://android.xsoftlab.net/training/secure-file-sharing/request-file.html 当APP需要访问一个被其它APP所共享的文件时&#xff0c;这个APP通常需要发送一个请求给共享文件的那个APP(服务端)&#xff0c;在大多数的情况下&#xff0c;这个请求会启动…

LeetCode 110. 平衡二叉树(二叉树高度)

1. 题目 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7]3/ \9 20/ \15 7 返回 true 。…