转载请注明: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. BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板 贪心 + 堆 + 反向思考

    Description Farmer John想修理牧场栅栏的某些小段.为此,他需要N(1<=N<=20,000)块特定长度的木板,第i块木板的长度为Li(1<=Li<=50, ...

  2. charles修改下行参数

    1.charles抓包修改下行参数: 想要修改的手机展示展示信息页: 2.charle设置断点,在请求接口上一个上设置断点 菜单proxy->Breadkpoints Settings设置打开断 ...

  3. 启动模拟器的qq

    #coding = utf-8from appium import webdriver '''1.手机类型2.版本3.手机的唯一标识 deviceName4.app 包名appPackage5.app ...

  4. 如果说需要注册数据中心,这样才能使用demo部署数据中心license证需要申请,使用云之间-工作流程......

    如果说需要注册数据中心,这样才能使用demo部署数据中心license证需要申请,使用云之间-工作流程......

  5. Mybatis配置之别名配置元素详述

    这里我们贴出之前的UserDao对应的mapper文件,如下所示 从这个配置文件中,我们可以看到<select>.<insert>和<update>三个标签元素的r ...

  6. 2.3 SVN在myeclipse中的使用

    一.将svn插件文件夹复制到myeclipse的dropins目录下,并重启myeclipse 二.从SVN中检查项目到myeclipse  2.打开myeclipse,点击window的show v ...

  7. mysql连接错误,error1251解决方式

    解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password.本文采用第二种方式ALTER USER 'root ...

  8. 通用 mapper

    一.为什么需要通用 mapper 插件 通用 mapper 插件可以自动的生成 sql 语句. 虽然 mybatis 有逆向工程,可以直接生成 XxxMapper.xml 文件,但是这种生成的方式存在 ...

  9. netty 拆包和粘包 (三)

    在tcp编程底层都有拆包和粘包的机制   拆包 当发送数据量过大时数据量会分多次发送 以前面helloWord代码为例 package com.liqiang.nettyTest2; public c ...

  10. 洛谷 P3819 松江1843路

    题目描述 涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人. 松江1843路公交车要在这条路上建一个公交站,市政府希望让最多的 ...