隐式意图调用系统自带组件的各种Uri总结

调用系统应用解析(必需要加各自使用的权限)

android intent 隐式意图和显示意图(activity跳转)


显示意图要求必须知道被激活组件的包和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");

2. Intent it = new Intent(Intent.ACTION_VIEW,URI);

3. startActivity(it);


//查看指定联系人

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");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

//where pkg_name is the full package path for an application


发送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:[email protected]");

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, "[email protected]");

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={"[email protected]"};

3. String[] ccs={"[email protected]"};

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");

2. Intent it = new Intent(Intent.ACTION_VIEW,uri);

3. startActivity(it);


显示地图:

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);

时间: 2024-10-20 06:47:11

隐式意图调用系统自带组件的各种Uri总结的相关文章

使用隐式意图调用系统拨号,呼叫程序

Action ·拨号Action:Intent.ACTION_DIAL ·呼叫Action:Intent.ACTION_CALL Permission ·在Android系统中,敏感操作(涉及隐私的,安全的,可能产生费用的) 都需要申请权限,且当应用程序被安装到设备上之前,会列举当前应用程序所申请的权限,用户可以选择继续安装该应用程序,或不安装. ·通话权限为: <uses-permission android:name="android.permission.CALL_PHONE&quo

基础学习总结(八)--Intent中显示意图和隐式意图的用法

Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用.因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦.例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人

Android 显示意图和隐式意图的区别

意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么. 意图的作用: 1.激活组件 2.携带数据 3.意图的匹配(运用到隐式意图) android基本的设计理念是鼓励减少组件间的耦合,因此android提供了Intent(意图),用意图激活其他组件.Intent提供了一种通用的消息系统,它允许在你的应用程序与其他应用程序间传递Intent来执行和产生事件.使用Intent可以激活android应用的三个核心组件:

Intent隐式意图

Intent隐式意图 就是没有指定的组件 可以有多个 1,首先要在mainactivity里建立Button b类, 然后用 setContentView (R.layout.activity_main);来查找要按钮, 让 b = (Button)setContentView (R.layout.activity_main); 为b添加鼠标事件 b.setOnClickListener(this); 此时要实现implements OnClickListener接口 实现onClick方法 要

显式意图,隐式意图。。带值传递意图

显式意图1 显式意图2 带值传递意图1 带值传递意图2 隐式意图1 隐式意图2

[android] 隐式意图激活另外一个activity

随着api的升级,系统的很多应用包名和类名都改掉了,所以很多时候,打开系统应用的时候会报错,隐式意图就是解决组件之间松耦合,描述动作行为 获取Intent对象,通过new出来 调用Intent对象的setAction(action)方法,设置动作,参数:String类型的常量例如:Intent.ACTION_VIEW 调用Intent对象的setData(data)方法,设置数据,参数:Uri对象, 例如:网址Uri.parse(“http:xxx”); 调用startActivity(inte

隐式意图Intent

在我们想往下一个页面传递数据时,要想到显式意图和隐式意图,显示意图用于内部活动跳转时比较方便,而隐式意图用于应用程序中外部活动的跳转时较为方便,在使用隐式意图时我们要想到清单文件 代码如下: <intent-filter> <action android:name="xx,xx,xx,xx"/> <category android:name="android.intent.category.DEFAULT"/> </inte

支付SDK的安全问题——隐式意图可导致钓鱼攻击

 该漏洞涉及到app所使用的intent和intent filter. intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用. intent主要包括隐式意图和显式意图.调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图

implicit intent 隐式意图

Google 文档中: An intent allows you to start an activity in another app by describing a simple action you'd like to perform (such as "view a map" or "take a picture") in an Intent object. This type of intent is called an implicitintent be