APP内容共享

发送文本内容

发送简单的数据到其他应用,比如社交分享的内容,意图允许用户快速而方便地共享信息。

//分享简单文本内容public void shareSimpleContentClick(View v){Intent intent=new Intent();intent.setAction(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT,"分享简单文本内容");startActivity(intent);}


指定选择器:如果只有一个分享选择的情况下,指定选择器一样会跳出列表,而不会直接发送。

//指定选择器
startActivity(intent.createChooser(intent,"指定选择器分享文本内容"));

发送二进制内容

发送图片内容

//分享图片内容
public void shareImageClick(View v){Uri uri=Uri.parse("图片路径");Intent intent=new Intent();intent.setAction(Intent.ACTION_SEND);intent.setType("image/*");intent.putExtra(Intent.EXTRA_STREAM,uri);
//        startActivity(intent);//指定选择器startActivity(intent.createChooser(intent,"分享图片到"));}

发送多件内容

//分享多件内容public void shareMultipleClick(View v){Uri uri1=Uri.parse("/storage/emulated/0/Download/timg.jpg");Uri uri2=Uri.parse("/storage/emulated/0/Download/timg.jpg");ArrayList<Uri> list=new ArrayList<>();list.add(uri1);list.add(uri2);Intent intent=new Intent();intent.setAction(Intent.ACTION_SEND_MULTIPLE);intent.setType("image/*");intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,list);
//        startActivity(intent);//指定选择器startActivity(intent.createChooser(intent,"分享多件内容到"));}

从其他应用程序接受简单的数据

接收单个文本

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

处理传入内容

package com.example.actionbar;import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;public class ReceiverSharedContentActivity extends AppCompatActivity {private TextView textView_content;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_receiver_shared_content);textView_content=findViewById(R.id.content);handlerContent();}//处理传入的内容public void handlerContent(){Intent intent=getIntent();String type=intent.getType();String action=intent.getAction();if (Intent.ACTION_SEND.equals(type)){if ("text/plain".equals(type)){String info=intent.getStringExtra(Intent.EXTRA_TEXT);textView_content.setText(info);}}}
}

使用ShareActionProvider

把分享操作附加到个一个菜单项(注意,必须在Android4.0(API 14) 才能使用)

添加分享菜单

<item android:id="@+id/share" android:title="share"android:orderInCategory="400" app:showAsAction="ifRoom"android:icon="@android:drawable/ic_menu_share"app:actionProviderClass="android.support.v7.widget.ShareActionProvider"></item>

设置共享的intent

@Override
public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main,menu);MenuItem item=menu.findItem(R.id.share);ShareActionProvider sap= (ShareActionProvider) MenuItemCompat.getActionProvider(item);Intent intent=new Intent();intent.setAction(Intent.ACTION_SEND);intent.setType("text/plain");intent.putExtra(Intent.EXTRA_TEXT,"分享简单文本内容");sap.setShareIntent(intent);return true;
}

Android学习——APP内容共享相关推荐

  1. 从零开始水安卓——APP内容共享

    在ActionBar一文中已经略有涉及该部分内容,实际上已经算是一个比较完整的小Demo了 https://blog.csdn.net/nishigesb123/article/details/890 ...

  2. Android学习---通过内容提供者(ContentProvider)操作另外一个应用私有数据库的内容...

    一.什么是ContentProvider? ContentProvider直译过来就是内容提供者,主要作用就是A应用提供接口给B应用调用数据,和之前介绍的sharedPreference和直接开放文件 ...

  3. Android不同APP间共享数据:sharedUserId

    Android-sharedUserId数据权限 Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户 (Android 系统是基于Lin ...

  4. c语言程序设计安卓,C语言编程学习app

    C语言编程学习app是一款为编程人员打造的学习类app,对于不少学习c语言的用户来说,需要看很多的教材资料,在手机上看会很方便,这款软件中有着大量的计算机二级考试题目,不仅能够提升您的编程能力,同时还 ...

  5. [任务书+论文+PPT+源码]基于Android与多媒体的英文学习APP的设计与实现

    第1页 毕业设计(论文)题目:基于ANDROID与多媒体技术的英文学习APP的设计与实现设计(论文)要求及原始数据(资料):1.综述国内外移动互联现状及前景:2.了解ANDROID系统,理解ANDRO ...

  6. 基于Android与多媒体的英文学习APP的设计

    毕业设计(论文)任务书 第1页 毕业设计(论文)题目:基于Android与多媒体技术的英文学习APP的设计与实现设计(论文)要求及原始数据(资料):1.综述国内外移动互联现状及前景:2.了解Andro ...

  7. Android学习系列(10)--App列表之拖拽ListView(上)

    研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨.       鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...

  8. Android学习系列(11)--App列表之拖拽ListView(下)

    接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法.      在这个方法中我们主要是处 ...

  9. Android学习系列(27)--App缓存管理

    随笔- 53 文章- 10 评论- 1064 Android学习系列(27)--App缓存管理 无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户. ...

最新文章

  1. 你的模型刚不刚?谷歌提出“刚度”概念,探索神经网络泛化新视角
  2. 生活随笔:人的追求和差异
  3. Python 值传递与地址传递总结
  4. 大数据WEB阶段Mybatis(一)
  5. 2021牛客多校3 - Minimum grid(二分图最大匹配-最大流)
  6. [css] 如何使用伪元素实现增大点击热区来增加用户体验?
  7. math python 向上取整_计算机等级考试二级Python语言模拟试卷单选解答详解第1期...
  8. 通过命令行新建qt项目,并编译打包
  9. Name or service not know
  10. Ubuntu 20.04 上搭建 LEMP/LAMP 环境运行 WordPress
  11. 2019.04.07 电商12 登录界面的验证
  12. windows是第几代计算机,Win7一个月后将被官方淘汰!历代微软系统哪个是你的青春?...
  13. 华为手机usb调试已打开,adb devices不显示设备
  14. 《点满舔狗相关技能以后,不知为何就转码了》之YOLOP,YOLOPV2推理入门教学
  15. Qt ‘tr‘ was not declared in this scop
  16. Springboot+MySQL实现多数据源的信息导入
  17. 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 8
  18. 搜索引擎排名都选乐云seo_广州搜索引擎排名_乐云SEO
  19. 让Android程序教你画画
  20. 【已解决】拯救者Y7000不能调节亮度

热门文章

  1. 网页通过url传递数据
  2. 【spacedesk】屏幕扩展,将平板pad设置为pc的副屏
  3. 小程序父传子组件传值
  4. 各大AI 开放平台一览
  5. 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)
  6. COCO 与VOC格式转化 -目标识别
  7. MSN、腾讯QQ、SKYPE、阿里旺旺网页在线客服源代码
  8. linux 安装ElasticSearch 6.x
  9. ATEC倒计时14天|蚂蚁金服区块链技术:让善款来有影去有踪(内赠门票)
  10. 小程序源码:登录接口已修复梦想贩卖机V2 2.0.4 修复版