iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android应用中使用及实现系统“分享”接口实例
  • 701
分享到

Android应用中使用及实现系统“分享”接口实例

系统接口Android 2022-06-06 05:06:59 701人浏览 独家记忆
摘要

为了应用的推广、传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信、微博等等一切实现了分享功能的应用列表。这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己

为了应用的推广、传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信、微博等等一切实现了分享功能的应用列表。这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中。Android应用中能很方便的完成这些功能,这也正是Android的伟大之处,他能很简单的完成应用之间的沟通以相互整合。

调用分享功能

1、分享文本

分享功能使用的隐式启动Activity的方法,这里的Action使用的是 ACTION_SEND。


Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
sendIntent.setType("text/plain"); 
startActivity(sendIntent); 

效果如下图的图一。

2、改变分享列表标题

使用上面的分享方式分享列表标题为“使用一下内容完成操作”,Android中提供了Intent.createChooser() , 这样能一直显示分享选择列表,并且修改了分享列表标题内容。


Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
sendIntent.setType("text/plain"); 
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to))); 

使用Intent.createChooser()的好处:

If you callIntent.createChooser() for the intent, Android will always display the chooser. This has some advantages:

Even if the user has previously selected a default action for this intent, the chooser will still be displayed. If no applications match, Android displays a system message. You can specify a title for the chooser dialog.

           

分享功能不只是Intent.EXTRA_TEXT,还可以 EXTRA_EMAIL ,EXTRA_CC , EXTRA_BCC  ,EXTRA_SUBJECT . 只需要接受方完成响应数据接受。

3、分享图片

分享功能还支持二进制内容(Binary Content),但是多数是处理的图片,因为shareIntent.setType("image/jpeg")这一项设置了内容类型。可也以是其他类型,需要接受方支持。


Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND); 
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage); 
shareIntent.setType("image/jpeg"); 
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to))); 

4、分享图片列表

分享功能不仅支持单张图片,还支持图片列表,这里还是说的范围太窄了,应该声明不仅仅是图片。


ArrayList<Uri> imageUris = new ArrayList<Uri>(); 
imageUris.add(imageUri1); // Add your image URIs here 
imageUris.add(imageUri2); 
Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); 
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); 
shareIntent.setType("image/*"); 
startActivity(Intent.createChooser(shareIntent, "Share images to..")); 

实现分享功能

上面说的都是怎么调用分享功能,以下就开始写怎么实现分享功能,让我们的应用也出现在分享列表中。前面也说了分享功能是使用隐式调用Activtiy实现的,Activity需要声明 <intent-filter> 。

声明intent-filter


<activity 
      android:name="com.example.sharedemo.ShaReactivity" 
      android:label="@string/app_name" > 
      <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> 

上面声明了三种intent-filter,当然可以更多,这里只是举个例子,

处理接收数据
声明了intent-filter,响应的Activity就要处理响应的数据,示例如下:


public class ShareActivity extends Activity{ 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    // Get intent, action and MIME type 
    Intent 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); 
    String sharedTitle = intent.getStringExtra(Intent.EXTRA_TITLE); 
    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 
    } 
  } 
} 

通过声明intent-filter,处理接受到的数据就能完成分享的接收功能。

更多

上面只做了分享功能简单的说明,伴随着Android api的升级,也出现了一些新的完成“分享”功能的方法,比如 ShareActionProvider ,更多请参考。

demo下载:demo

您可能感兴趣的文章:Android调用系统自带的分享功能实例代码Android 复制文本内容到系统剪贴板的最简单实例(分享)Android编程实现调用系统分享功能示例详解Android系统中跨应用数据分享功能的实现android教程之把自己的应用加入到系统分享中android系统分享的自定义功能的示例代码


--结束END--

本文标题: Android应用中使用及实现系统“分享”接口实例

本文链接: https://www.lsjlt.com/news/22931.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android应用中怎么实现分享功能
    要在Android应用中实现分享功能,可以使用Android内置的分享功能或者使用第三方的分享库。以下是一种常见的实现方法: 创建...
    99+
    2024-04-03
    Android
  • 使用Android实现截图和分享功能的案例
    这篇文章主要介绍了使用Android实现截图和分享功能的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家展示下效果图吧直接上代码:xml的布局:<Button...
    99+
    2023-05-30
    android
  • Java的接口使用实例分析
    这篇文章主要介绍了Java的接口使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的接口使用实例分析文章都会有所收获,下面我们一起来看看吧。接口一图流接口的概念以及一些知识点汇总接口(英文:In...
    99+
    2023-06-30
  • 日志记录在GO语言接口中的应用:学习实例分享
    日志记录在软件开发中是一个非常重要的环节,它可以帮助我们追踪和调试程序的运行情况,以及及时发现和解决潜在的问题。在Go语言开发中,我们可以通过一些第三方库来实现日志记录功能,比如logrus、zap等。但是,这些库都是基于结构体的,需要在...
    99+
    2023-06-25
    教程 接口 日志
  • 如何使用PHP实现Unix系统的实时接口?
    Unix系统是一种广泛使用的操作系统,许多应用程序都需要与其进行交互。在Unix系统中,实时接口是一个非常重要的概念,可以让应用程序和系统实时交互。在本文中,我们将介绍如何使用PHP实现Unix系统的实时接口,并提供一些演示代码。 一、什...
    99+
    2023-09-13
    实时 unix 接口
  • Golang接口实现方式及示例分析
    Golang是一种静态类型、编译型语言,最初由Google设计和开发,在处理大规模项目时表现出色。Golang中的接口是一种重要的概念,它允许类型之间的互操作性,并支持多态。 Gola...
    99+
    2024-03-06
    接口 golang 示例
  • PHP日志接口在Django中的应用:最佳实践分享!
    在现代web应用程序中,日志是不可或缺的。它们帮助我们了解应用程序的运行情况,以及在发生问题时排查问题。在这方面,PHP有着一流的日志记录功能,它可以将日志记录到各种目标,如文件、数据库、syslog等。然而,如果你是一个Django开发...
    99+
    2023-09-15
    日志 接口 django
  • Java中如何使用接口实现火车票实例
    这篇文章主要为大家展示了“Java中如何使用接口实现火车票实例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何使用接口实现火车票实例”这篇文章吧。import java.u...
    99+
    2023-06-02
  • 简单实用:Go WaitGroup的应用实例分享
    WaitGroup是Go语言中的一个同步原语,用于等待一组goroutine的完成。下面是一个简单的应用实例,演示了如何使用Wait...
    99+
    2023-10-08
    Golang
  • golang调用c实现的dll接口细节分享
    目的 本篇文章主要介绍golang在调用c实现的dll时,具体的一些方式。比如值传递、参数传递、指针等等的一些使用。 一、dll的代码 c实现的dll代码: hello.h #i...
    99+
    2024-04-02
  • C#泛型接口实例应用
    这篇文章主要讲解了“C#泛型接口实例应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型接口实例应用”吧!C# 泛型接口代码//Type parameter T&n...
    99+
    2023-06-17
  • 使用Nest.js实现接口教程示例
    目录一.项目初始化二.核心文件介绍三.创建一个接口模块,处理请求四.看看cats模块有啥吧1.先看controller吧,请求方法都在这了2.你这地址有点单调啊,能不能接收query...
    99+
    2024-04-02
  • 使用any实例化通用接口,struct不实现它
    php小编柚子在这篇文章中将为大家介绍使用any实例化通用接口的方法,并解释为什么struct并不实现它。通用接口是一种非常有用的设计模式,它允许我们在编写代码时使用更加灵活的方式。然...
    99+
    2024-02-08
    overflow
  • 如何在Android应用中调用系统自带的分享功能
    本篇文章给大家分享的是有关如何在Android应用中调用系统自带的分享功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现分享功能的几个办法调用系统的分享功能通过第三方SDK...
    99+
    2023-05-31
    android roi
  • Python中的bytes类型用法及实例分享
    目录1.bytes定义2.bytes方法3.使用不同方式创建 bytes 对象前言; Python bytes 类型用来表示一个字节串。“字节串“不是编程术语...
    99+
    2024-04-02
  • 大数据索引在ASP接口中的应用案例分享。
    随着大数据时代的到来,数据量越来越大,如何高效地存储和检索数据成为了亟待解决的问题。大数据索引技术就应运而生,它能够快速地找到数据,提高了数据检索的效率。在ASP接口中,大数据索引技术也有着广泛的应用。本文将分享一个大数据索引在ASP接口中...
    99+
    2023-10-04
    接口 大数据 索引
  • ThinkPHP中怎么实现分布式应用系统
    这篇文章主要讲解了“ThinkPHP中怎么实现分布式应用系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ThinkPHP中怎么实现分布式应用系统”吧!一、什么是分布式应用系统分布式应用系统...
    99+
    2023-07-05
  • 在Android中使用PopupWindow实现一个弹出分享功能
    在Android中使用PopupWindow实现一个弹出分享功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码package com.duanlian.po...
    99+
    2023-05-31
    android popupwindow roi
  • android如何实现系统分享的自定义功能
    小编给大家分享一下android如何实现系统分享的自定义功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!分享功能是app中特别常见的功能,国内的app基本都支持分享到微信 QQ等主流的社交应用。至于分享功能的实现大多是使...
    99+
    2023-05-30
    android
  • Springboot使用redis实现接口Api限流的实例
    前言 该篇介绍的内容如题,就是利用redis实现接口的限流(  某时间范围内 最大的访问次数 ) 。 正文  惯例,先看下我们的实战目录结构: 首...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作