隐式意图调用系统自带组件的各种Uri总结
-
显示意图要求必须知道被激活组件的包和class
隐式意图仅仅须要知道跳转activity的动作和数据,就能够激活相应的组件
A 主activity B 接收跳转的activity
步骤
1:在主配置文件里声明B 至少要声明一个android:name属性
[html]
<activity
android:name=".DemoActivity"
android:label="@string/demoActivity" >
<intent-filter>
<!-- 隐士意图中指定intent的名字 自定义 可匹配多项 -->
<action android:name="com.itcast.intent.DemoActivity" />
<!-- 隐式intent须要指定的activity的类型,可自定义该值,须要在调用的时候相相应不写该项默觉得 android.intent.category.DEFAULT,可匹配多项 -->
<category android:name="android.intent.category.DEFAULT" />
<!-- 指定传想该activity数值的类型 和主机,假设指定该项,就必须在跳转activity的时候传入还数据和主机名 -->
<data
android:host="cn.itcast.demo"
android:scheme="itcast" />
</intent-filter>
</activity>
|
//将电话号码传入拨号程序
Intent intent = new Intent(Intent.ACTION_DIAL, Uri .parse("tel:123456789"));
startActivity(intent);
|
//直接的拨打对应号码
Intent intent = new Intent(Intent.ACTION_CALL, Uri .parse("tel:123456789"));
startActivity(intent);
|
|
路径规划: 1. Uri uri = Uri.parse("http://maps.google.com/maps? f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); |
//查看指定联系人
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); |
拨打电话: 调用拨号程序 1. Uri uri = Uri.parse("tel:xxxxxx"); 2. Intent it = new Intent(Intent.ACTION_DIAL, uri); 3. startActivity(it); 1. Uri uri = Uri.parse("tel.xxxxxx"); 2. Intent it =new Intent(Intent.ACTION_CALL,uri); 3. 要使用这个必须在配置文件里增加<uses-permission id="Android.permission.CALL_PHONE" /> |
Uninstall 程序 1. Uri uri = Uri.fromParts("package", strPackageName, null); 2. Intent it = new Intent(Intent.ACTION_DELETE, uri); 3. startActivity(it); |
|
//进入联系人页面
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CONTENT_URI); startActivity(intent); |
//搜索应用
Uri uri = Uri.parse("market://search? q=pname:pkg_name"); |
发送SMS/MMS
调用发送短信的程序 1. Intent it = new Intent(Intent.ACTION_VIEW); 2. it.putExtra("sms_body", "The SMS text"); 3. it.setType("vnd.android-dir/mms-sms"); 4. startActivity(it); |
//调用相冊
public static final String MIME_TYPE_IMAGE_JPEG = "image/*"; public static final int ACTIVITY_GET_IMAGE = 0; Intent getImage = new Intent(Intent.ACTION_GET_CONTENT); getImage.addCategory(Intent.CATEGORY_OPENABLE); getImage.setType(MIME_TYPE_IMAGE_JPEG); startActivityForResult(getImage, ACTIVITY_GET_IMAGE); |
|
//发送附件
Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/eoe.mp3[/url]"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "Choose Email Client")); |
install apk
Uri installUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); play audio Uri playUri = Uri.parse("[url=]file:///sdcard/download/everything.mp3[/url]"); returnIt = new Intent(Intent.ACTION_VIEW, playUri); |
播放多媒体
1. 2. Intent it = new Intent(Intent.ACTION_VIEW); 3. Uri uri = Uri.parse("[url=]file:///sdcard/song.mp3[/url]"); 4. it.setDataAndType(uri, "audio/mp3"); 5. startActivity(it); 1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); 2. Intent it = new Intent(Intent.ACTION_VIEW, uri); 3. startActivity(it); |
//调用系统相机应用程序。并存储拍下来的照片
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); time = Calendar.getInstance().getTimeInMillis(); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg"))); startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE); |
|
加入附件
1. Intent it = new Intent(Intent.ACTION_SEND); 2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 3. it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/mysong.mp3[/url]"); 4. sendIntent.setType("audio/mp3"); 5. startActivity(Intent.createChooser(it, "Choose Email Client")); |
发送短信 1. Uri uri = Uri.parse("smsto:0800000123"); 2. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 3. it.putExtra("sms_body", "The SMS text"); 4. startActivity(it); |
发送彩信 1. Uri uri = Uri.parse("content://media/external/images/media/23"); 2. Intent it = new Intent(Intent.ACTION_SEND); 3. it.putExtra("sms_body", "some text"); 4. it.putExtra(Intent.EXTRA_STREAM, uri); 5. it.setType("image/png"); 6. startActivity(it); |
发送Email
1. 2. Uri uri = Uri.parse("mailto:xxx@abc.com"); 3. Intent it = new Intent(Intent.ACTION_SENDTO, uri); 4. startActivity(it); 1. Intent it = new Intent(Intent.ACTION_SEND); 2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com"); 3. it.putExtra(Intent.EXTRA_TEXT, "The email body text"); 4. it.setType("text/plain"); 5. startActivity(Intent.createChooser(it, "Choose Email Client")); 1. Intent it=new Intent(Intent.ACTION_SEND); 2. String[] tos={"me@abc.com"}; 3. String[] ccs={"you@abc.com"}; 4. it.putExtra(Intent.EXTRA_EMAIL, tos); 5. it.putExtra(Intent.EXTRA_CC, ccs); 6. it.putExtra(Intent.EXTRA_TEXT, "The email body text"); 7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); 8. it.setType("message/rfc822"); 9. startActivity(Intent.createChooser(it, "Choose Email Client")); |
|
显示网页: 1. Uri uri = Uri.parse("http://www.google.com"); |
显示地图:
1. Uri uri = Uri.parse("geo:38.899533,-77.036476"); 2. Intent it = new Intent(Intent.Action_VIEW,uri); 3. startActivity(it); |
uninstall apk
/**未測试 Uri uninstallUri = Uri.fromParts("package", "xxx", null); returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri); */ Uri packageURI = Uri.parse("package:"+wistatmap); Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI); startActivity(uninstallIntent); |
|
隐式意图调用系统自带组件的各种Uri总结的更多相关文章
- android 21 隐式意图启动系统预定义activity
Intent intent=new Intent(LoginActivity.this, MainActivity.class);//显示意图启动,显示从一个activity到另一个activity, ...
- Android学习笔记_17_Intent匹配规则(隐式意图)
Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行 ...
- 基础学习总结(八)--Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组 ...
- Android学习记录(7)—Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的 ...
- Android 显示意图和隐式意图的区别
意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么. 意图的作用: 1.激活组件 ...
- Activity组件:(一)通过显式意图和隐式意图来实现Activity间的跳转
一.通过显式意图来实现Activity间的跳转 显式意图是指在创建Intent对象时就指定接受者组件 /** * 下面是通过显式意图进行跳转,即明确写出要跳转到SecondActivity.class ...
- Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用
一.显式意图来跳转到第三方应用 /** * 这个方法会在点击按钮的时候执行 * @param view */ public void skip2Browser(View view){ Log.d(TA ...
- 隐式意图Intent
在我们想往下一个页面传递数据时,要想到显式意图和隐式意图,显示意图用于内部活动跳转时比较方便,而隐式意图用于应用程序中外部活动的跳转时较为方便,在使用隐式意图时我们要想到清单文件 代码如下: < ...
- 支付SDK的安全问题——隐式意图可导致钓鱼攻击
该漏洞涉及到app所使用的intent和intent filter. intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”.Intent负责对应用中一次操作的动作.动作涉及数据. ...
随机推荐
- iOS exit(),abort(),assert()函数区别
iOS exit(),abort(),assert()函数区别 exit() 退出程序 abort() 停止程序, assert()检查里面的参数如果为nil抛出异常:
- iOS sort array 数组排序里面的对象
一:如下代码 //对数据按次数排序 NSArray *sortArrays = [pinCiDataArray sortedArrayUsingComparator:^NSComparisonResu ...
- Android平台上直接物理内存读写漏洞的那些事
/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰 邮箱: minzhenfei@163.com */ 通过mmap直接操作物理内存的漏洞应该算是比較常见的一类漏洞了,在2012年.2 ...
- j2ee高并发时使用全局变量需要注意的问题
原文:https://blog.csdn.net/jston_learn/article/details/21617311 开发中,全局变量的使用很频繁,但对于多线程的访问,使用全局变量需要注意的地方 ...
- [转]SIGHUP与终端控制
SIGHUP信号与控制终端 UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程.一个session可能会有一个session首进程, ...
- Ubuntu Server 12.04 安装 Jabberd2 服务器
本篇文章由:http://xinpure.com/install-ubuntu-server-12-04-jabberd2-server/ Ubuntu Server 12.04 安装 Jabberd ...
- Linux 网卡丢包严重
http://hi.baidu.com/scstwy/item/cad0fbef1fdc18d3eb34c9d9
- Mac下配置Apache,PHP
注:如果觉得终端下编辑太麻烦,也可以直接将文件拖出来手动编辑后在放回原文件夹替换即可 1.启用Apache: 在Mac下打开终端,输入“sudo apachectl start”(不包含引号,下同) ...
- EMQ配置“ClientId 认证”
EMQ配置“ClientId 认证” 基于 MQTT 客户端 ID 认证 clientId配置文件地址 /etc/emqttd/plugins/emq_auth_clientid.conf 内容如下: ...
- MongoDB - 内嵌角色
数据库用户角色(每个数据库都有的角色) 角色名 说明 read 对non-system集合的读取权限,以及以下system集合的读取权限:system.indexes,system.js,syst ...