转载请注明:http://www.cnblogs.com/igoslly/p/6844154.html

Intent启用应用软件

intent可以用来要求其他应用组件完成特定工作,如相机、电话、地图等。intent只是表示app需要打开的功能,并未限制打开的软件。故当手机存在多个软件中,系统会提示用户选择偏好软件;若不存在软件,则会出错,需要在程序中进行避免。

intent必须包含action、Data Uri属性,其他还有Category、Component、Extra根据用户需求进行补充。

URI — uniform resources identifier是构建数据的标准化方法。

例如电话功能:

action : ACTION_DIAL
DATA : “tel:2125551212”

地图功能:

action : ACTION_VIEW
Data : “geo:47.6,-122.3”
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.phrase(“geo:47.6,-122.3));

防止无打开应用,系统出错的需要在JAVA文件添加以下代码,同时若无法打开,也可以使用Toast向用户说明。

if (intent.resolveActivity(getPackageManager())!=null){
startActivity(intent);
}
else{
Toast.makeText(this,”Error”,Toast.LENGTH_SHORT).show(); //Toast弹出消息设置
}

我们Coffee应用需要的邮件功能,存在三个Action

ACTION_SENDTO

无附件

ACTION_SEND

1个附件

ACTION_MULTIPLE

多个附件

添加Extra:SUBJECT表主题,EMAIL表所有收件人的字符串array,TEXT表邮件正文主体内容。

Intent intent = new Intent (Intent.ACTION_SENDTO);
intent.setData(Uri.phrase(“mailto:”));
intent.putExtra(intent.EXTRA_EMAIL,address); //收件人地址String Array
intent.putExtra(intent.EXTRA_SUBJECT,subject); //邮件主题
intent.putExtra(intent.EXTRA_TEXT,Msg); //邮件正文主体

申明:

1、本笔记为文字及图片均为个人原创,转载请注明博客园-igoslly

2、Android开发课程于2017年4年参与GoogleDeveloper进行学习,笔记原版http://www.studyjamscn.com/thread-20580-1-1.html#pid272486

Android开发笔记(7)——Intent启用应用软件的更多相关文章

  1. Android 开发笔记——通过 Intent 传递类对象

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...

  2. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  3. 【转】Android开发笔记(序)写在前面的目录

    原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...

  4. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  5. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  6. Android开发笔记--hello world 和目录结构

    原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SD ...

  7. [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明

    接上节 [APP] Android 开发笔记 002 5. 使用ant release 打包 1)制作 密钥文件 release.keystore (*.keystore) keytool -genk ...

  8. [APP] Android 开发笔记 002-命令行创建默认项目结构说明

    接上节:[APP] Android 开发笔记 001 4. 默认项目结构说明: 这里我使用Sublime Text 进行加载.

  9. Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计

    Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...

随机推荐

  1. javaee Properties键值对写入和读取方法

    package Zjshuchu; import java.util.Properties; import java.util.Set; public class Demo03 { public st ...

  2. 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例

    一个简单的执行程序的GNU automake自动生成Makefile的方法及案例 在GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写 ...

  3. Linux基础:seq命令总结

    本文只总结一些常用的用法,更详细的说明见man seq和 seq --help. seq命令 seq命令用于输出数字序列. 语法格式 Usage: seq [OPTION]... LAST or: s ...

  4. js中call、apply、bind的区别

    var Person = { name : 'alice', say : function(txt1,txt2) { console.info(txt1+txt2); console.info(thi ...

  5. Linux—Ubuntu14.0.5 修改gitlab管理员的密码

    1. 在root用户下,执行 gitlab-rails console production #进入gitlba控制台 2.获得用户数据,修改用户密码 [root@svr34 bin]# gitlab ...

  6. 43.mapping的理解

    主要知识点: mapping的理解     (1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping (2)mapping中就自动定义了每个field的数据类型. ( ...

  7. Java并发之CAS与AQS简介

    1,什么是CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B). ...

  8. HDU 2415 Bribing FIPA

    Bribing FIPA Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original I ...

  9. Linux中tty是什么(tty1~7)

    tty:终端设备的统称. tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所 ...

  10. php学习之道:WSDL具体解释(一)

    WSDL文档使用web服务描写叙述语言来定义服务. 文档包含逻辑(抽象)部分和详细部分. 抽象部分用于定义独立于实现的数据类型和消息,详细部分定义一个endpoint怎样实现一个能够与外界进行交互的服 ...