隐式意图调用系统自带组件的各种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 判断NSString是否包含某个字符串
主要是使用3个方法 rangeOfString 是否包含 hasPrefix 是否在前缀包含 hasSuffix 是否在末尾包含 如代码: //判断字符是否包含某字 ...
- Linux启动apache失败怎么办
(20014)Internal error (specific information not available): AH00058: Error retrieving pid file logs/ ...
- POJ2406-Power Strings(kmp循环节)
Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 31111 Accepted: 12982 D ...
- 点滴积累【JS】---JS小功能(JS实现模仿微博发布效果)
效果: 思路: 利用多功能浮动运动框架实现微博效果,首先,将textarea中的属性添加到新创建的li里面然后,再将li添加到ul里面,再利用浮动运动框架将数据动态的显示出来. 代码: <hea ...
- 点滴积累【JS】---JS小功能(JS实现多功能缓冲运动框架)
效果: 思路: 首先,多功能框架实现的功能是:css中所有的属性都可以添加进去(也可以把方法作为参数传递过去!),然后进行缓冲运动,比如:物体的高度.长度.颜色.字体大小.透明度等,都可以直接传入参数 ...
- AutoHotKey入门
首先它要编译.ahk后缀的脚本才能执行.脚本里再写键盘触发监听之类的逻辑. 所以并非单单只是热键启动那么简单,可以组合出复杂的功能,甚至支持正则表达式 理论上扩展性比按键精灵差,易用性大大优于按键精灵 ...
- Android实现微信自己主动抢红包的程序
简单实现了微信自己主动抢红包的服务,原理就是依据keyword找到对应的View, 然后自己主动点击.主要是用到AccessibilityService这个辅助服务,基本能够满足自己主动抢红包的功能, ...
- 王立平-- Swift
Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C.而却没有C的一些兼容约束.Swift採用了安全的编程模式和加入现代的功能来是的编程更加简单.灵活和有趣. 界面则基于 ...
- RCU
RCU(read-copy-update)同步机制.R(Read):读者不需要获得任何锁就可访问RCU保护的临界区:C(Copy):写者在访问临界区时,写者“自己”将先拷贝一个临界区副本,然后对副本进 ...
- 使用Nginx Lua实现redis高性能http接口
使用Nginx Lua实现redis高性能http接口 时间 -- :: 峰云就她了 原文 http://xiaorui.cc/2015/01/27/使用nginx-lua实现redis高性能http ...