Android开发笔记(7)——Intent启用应用软件
转载请注明: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启用应用软件的更多相关文章
- Android 开发笔记——通过 Intent 传递类对象
Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- 【转】Android开发笔记(序)写在前面的目录
原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述
1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...
- Android开发笔记:打包数据库
对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...
- Android开发笔记--hello world 和目录结构
原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SD ...
- [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明
接上节 [APP] Android 开发笔记 002 5. 使用ant release 打包 1)制作 密钥文件 release.keystore (*.keystore) keytool -genk ...
- [APP] Android 开发笔记 002-命令行创建默认项目结构说明
接上节:[APP] Android 开发笔记 001 4. 默认项目结构说明: 这里我使用Sublime Text 进行加载.
- Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计
Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...
随机推荐
- javaee Properties键值对写入和读取方法
package Zjshuchu; import java.util.Properties; import java.util.Set; public class Demo03 { public st ...
- 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例
一个简单的执行程序的GNU automake自动生成Makefile的方法及案例 在GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写 ...
- Linux基础:seq命令总结
本文只总结一些常用的用法,更详细的说明见man seq和 seq --help. seq命令 seq命令用于输出数字序列. 语法格式 Usage: seq [OPTION]... LAST or: s ...
- js中call、apply、bind的区别
var Person = { name : 'alice', say : function(txt1,txt2) { console.info(txt1+txt2); console.info(thi ...
- Linux—Ubuntu14.0.5 修改gitlab管理员的密码
1. 在root用户下,执行 gitlab-rails console production #进入gitlba控制台 2.获得用户数据,修改用户密码 [root@svr34 bin]# gitlab ...
- 43.mapping的理解
主要知识点: mapping的理解 (1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping (2)mapping中就自动定义了每个field的数据类型. ( ...
- Java并发之CAS与AQS简介
1,什么是CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B). ...
- HDU 2415 Bribing FIPA
Bribing FIPA Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original I ...
- Linux中tty是什么(tty1~7)
tty:终端设备的统称. tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所 ...
- php学习之道:WSDL具体解释(一)
WSDL文档使用web服务描写叙述语言来定义服务. 文档包含逻辑(抽象)部分和详细部分. 抽象部分用于定义独立于实现的数据类型和消息,详细部分定义一个endpoint怎样实现一个能够与外界进行交互的服 ...