Intent的一些用法

转载http://qq361119908.iteye.com/blog/631534

ntent用法实例

1.无参数Activity跳转

Java代码

  1. Intent it = new Intent(Activity.Main.this, Activity2.class);
  2. startActivity(it);

2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)

Java代码

  1. Intent it = new Intent(Activity.Main.this, Activity2.class);
  2. Bundle bundle=new Bundle();
  3. bundle.putString("name", "This is from MainActivity!");
  4. it.putExtras(bundle);       // it.putExtra(“test”, "shuju”);
  5. startActivity(it);            // startActivityForResult(it,REQUEST_CODE);

对于数据的获取可以采用:

Java代码

  1. Bundle bundle=getIntent().getExtras();
  2. String name=bundle.getString("name");

3.向上一个Activity返回结果(使用setResult,针对startActivityForResult(it,REQUEST_CODE)启动的Activity)

Java代码

  1. Intent intent=getIntent();
  2. Bundle bundle2=new Bundle();
  3. bundle2.putString("name", "This is from ShowMsg!");
  4. intent.putExtras(bundle2);
  5. setResult(RESULT_OK, intent);

4.回调上一个Activity的结果处理函数(onActivityResult)

Java代码

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. // TODO Auto-generated method stub
  4. super.onActivityResult(requestCode, resultCode, data);
  5. if (requestCode==REQUEST_CODE){
  6. if(resultCode==RESULT_CANCELED)
  7. setTitle("cancle");
  8. else if (resultCode==RESULT_OK) {
  9. String temp=null;
  10. Bundle bundle=data.getExtras();
  11. if(bundle!=null)   temp=bundle.getString("name");
  12. setTitle(temp);
  13. }
  14. }
  15. }

下面是转载来的其他的一些Intent用法实例(转自javaeye)

显示网页

Java代码

  1. 1. Uri uri = Uri.parse("http://google.com");
  2. 2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. 3. startActivity(it);

显示地图

Java代码

  1. 1. Uri uri = Uri.parse("geo:38.899533,-77.036476");
  2. 2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. 3. startActivity(it);
  4. 4. //其他 geo URI 範例
  5. 5. //geo:latitude,longitude
  6. 6. //geo:latitude,longitude?z=zoom
  7. 7. //geo:0,0?q=my+street+address
  8. 8. //geo:0,0?q=business+near+city
  9. 9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom

路径规划

Java代码

  1. 1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
  2. 2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. 3. startActivity(it);
  4. 4. //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456

打电话

Java代码

  1. 1. //叫出拨号程序
  2. 2. Uri uri = Uri.parse("tel:0800000123");
  3. 3. Intent it = new Intent(Intent.ACTION_DIAL, uri);
  4. 4. startActivity(it);
  5. 1. //直接打电话出去
  6. 2. Uri uri = Uri.parse("tel:0800000123");
  7. 3. Intent it = new Intent(Intent.ACTION_CALL, uri);
  8. 4. startActivity(it);
  9. 5. //用這個,要在 AndroidManifest.xml 中,加上
  10. 6. //<uses-permission id="android.permission.CALL_PHONE" />

传送SMS/MMS

Java代码

  1. 1. //调用短信程序
  2. 2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. 3. it.putExtra("sms_body", "The SMS text");
  4. 4. it.setType("vnd.android-dir/mms-sms");
  5. 5. startActivity(it);
  6. 1. //传送消息
  7. 2. Uri uri = Uri.parse("smsto://0800000123");
  8. 3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  9. 4. it.putExtra("sms_body", "The SMS text");
  10. 5. startActivity(it);
  11. 1. //传送 MMS
  12. 2. Uri uri = Uri.parse("content://media/external/images/media/23");
  13. 3. Intent it = new Intent(Intent.ACTION_SEND);
  14. 4. it.putExtra("sms_body", "some text");
  15. 5. it.putExtra(Intent.EXTRA_STREAM, uri);
  16. 6. it.setType("image/png");
  17. 7. startActivity(it);

传送 Email

Java代码

  1. 1. Uri uri = Uri.parse("mailto:[email protected]");
  2. 2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  3. 3. startActivity(it);
  4. 1. Intent it = new Intent(Intent.ACTION_SEND);
  5. 2. it.putExtra(Intent.EXTRA_EMAIL, "[email protected]");
  6. 3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  7. 4. it.setType("text/plain");
  8. 5. startActivity(Intent.createChooser(it, "Choose Email Client"));
  9. 1. Intent it=new Intent(Intent.ACTION_SEND);
  10. 2. String[] tos={"[email protected]"};
  11. 3. String[] ccs={"[email protected]"};
  12. 4. it.putExtra(Intent.EXTRA_EMAIL, tos);
  13. 5. it.putExtra(Intent.EXTRA_CC, ccs);
  14. 6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  15. 7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  16. 8. it.setType("message/rfc822");
  17. 9. startActivity(Intent.createChooser(it, "Choose Email Client"));

传送附件

Java代码

  1. Intent it = new Intent(Intent.ACTION_SEND);
  2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  3. it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");
  4. sendIntent.setType("audio/mp3");
  5. startActivity(Intent.createChooser(it, "Choose Email Client"));

播放多媒体

Java代码

  1. Uri uri = Uri.parse("file:///sdcard/song.mp3");
  2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. it.setType("audio/mp3");
  4. startActivity(it);
  5. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
  6. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  7. startActivity(it);

Market 相关 
        //寻找某个应用

Java代码

  1. Uri uri = Uri.parse("market://search?q=pname:pkg_name");
  2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. startActivity(it);

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

Java代码

  1. 显示某个应用的相关信息
  2. Uri uri = Uri.parse("market://details?id=app_id");
  3. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  4. startActivity(it);
  5. //where app_id is the application ID, find the ID
  6. //by clicking on your application on Market home
  7. //page, and notice the ID from the address bar

发起一个应用程序 
ComponentName 两个参数一个是包名 一个是包下的主类

Java代码

  1. final Intent intent = new Intent(Intent.ACTION_MAIN, null);
  2. intent.addCategory(Intent.CATEGORY_LAUNCHER);
  3. final ComponentName cn = new ComponentName("com.android.settings","com.android.settings.fuelgauge.PowerUsageSummary");
  4. intent.setComponent(cn);
  5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  6. startActivity( intent);

Uninstall 应用程序

Java代码

  1. Uri uri = Uri.fromParts("package", strPackageName, null);
  2. Intent it = new Intent(Intent.ACTION_DELETE, uri);
  3. startActivity(it);

返回桌面

Java代码

  1. Intent unMyIntent = new Intent(Intent.ACTION_MAIN);
  2. unMyIntent.addCategory(Intent.CATEGORY_HOME);
  3. startActivity(unMyIntent);

发邮件

Java代码

  1. Uri uri = Uri.parse("mailto:[email protected]");
  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);

发送文件

Java代码

  1. Intent intent = new Intent();
  2. intent.setAction(Intent.ACTION_SEND);
  3. intent.setType(mimeType);
  4. intent.putExtra(Intent.EXTRA_STREAM, uri);
  5. startActivity(intent);
  6. 以上有两个变量需要说明:
  7. 1. mimeType: 如果是图片,则为"image/*",如果是音频,则为"audio/*",如果是视频,则为"video/*"
  8. 2. uri:如果是直接读取到文件路径并发送,则为Uri.fromFile(new File(filePath));
  9. 如果是从数据库中查循出来的uri,则直接传入即可.

发起市场程序

Java代码

  1. Intent intent = new Intent(Intent.ACTION_VIEW,
  2. Uri.parse("market://details?id=pname:org.rabold.android.puzzleblox"));
  3. //Uri.parse("market://search?q=pname:org.rabold.android.puzzleblox"));
  4. startActivity(intent);

调用系统裁剪图片

Java代码

  1. Uri photoUri = Uri.fromFile(new File("/mnt/sdcard/ruhua.jpg"));
  2. Log.i("path", photoUri.toString());
  3. Intent intent = new Intent("com.android.camera.action.CROP");
  4. intent.setDataAndType(photoUri, "image/*");
  5. intent.putExtra("crop", "true");
  6. intent.putExtra("aspectX", 1);
  7. intent.putExtra("aspectY", 1);
  8. intent.putExtra("outputX", 80);
  9. intent.putExtra("outputY", 80);
  10. intent.putExtra("output", photoUri);
  11. intent.putExtra("outputFormat", "JPEG");

实现分享功能

Java代码

  1. Intent mIntent = new Intent(Intent.ACTION_SEND);
  2. //根据分享的内容设置不同的mimeType          mIntent.setType("text/plain");
  3. mIntent.putExtra(Intent.EXTRA_TEXT, "下载地址?");
  4. mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  5. startActivity(Intent.createChooser(mIntent, "分享"));

获取图片

Java代码

    1. Intent intent = new Intent();
    2. /* 设置为image */
    3. intent.setType("image/*");
    4. /* 使用Intent.ACTION_GET_CONTENT这个Action */
    5. intent.setAction(Intent.ACTION_GET_CONTENT);
    6. /* 取得图片后返回本画面 */
    7. startActivityForResult(intent, 1);
时间: 2024-10-09 20:37:20

Intent的一些用法的相关文章

Android中Intent的相关用法

Intent第一个用法便是用它来进行活动之间的跳转 新建一个SecondActivity活动,并为之新建一个second_layout.XML布局文件,也创建一个Button按钮,名字为Button 2.然后在AndroidManifest.XML中进行注册. 接下来在FirstAcitivity中重写按钮点击时间 按钮点击事件首先要新建一个按钮监听器,然后在监听器中重写onClick方法. 而onClick方法中便是Intent如何显示跳转活动,即明确规定跳转到哪个活动.先新建一个intent

Android:调用打电话和发短信及intent一些其他用法

1.打电话 可以自己写界面,在button的单击事件中添加如下代码即可: Intent intent = new Intent();    intent.setAction("android.intent.action.CALL");    intent.setData(Uri.parse("tel:"+ mobile));//mobile为你要拨打的电话号码,模拟器中为模拟器编号也可    startActivity(intent); 需要添加打电话权限: <

intent 几种用法

Intent 应该算是Android中特有的东西.你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料.都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用 程序,并执行该程序. 下面列出几种Intent 的用法显示网页: Uri uri = Uri.parse("http://www.google.com"); Intent it  = new Intent(Inten

Android中常见Intent习惯用法-上篇(附源码下载)

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见博文<Android中Intent概述及使用>.如果对Intent Filter不是特别了解,可以参见博文<Android中Intent对象与Intent Filter过滤匹配过程详解>. 本文着重讲一下Android中一些常见的Intent的习惯用法,比如如何通过Intent发送短信.发送邮件.启动摄像机拍照录视频.设置闹铃.打开WIFI设置界面等等. 限于篇幅,本博文分为上下两篇,这是上篇

从零开始学android&lt;Intent进阶.四十一.&gt;

前一节我们学习了Intent的基本用法,多个Activity之间的转跳并传递信息. 今天我们使用Intnet来完成一些 特殊的操作,比如拨打电话,发送短信,浏览网页等-- OK废话不多说,直接上教程,具体会在代码注释中具体讲解 1.使用Intent打开网页 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

【Android】12.0 第12章 Intent及其过滤器&mdash;本章示例主界面

分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 这一章我们主要学习Intent的基本用法,并通过例子演示如下功能: 如何启动另一个界面: 如何获取另一个界面的返回值: 如何利用Intent读取图库中的图片: 如何利用Intent读取和更新通讯录: 如何利用Intent实现记事本功能. 二.本章示例主界面 1.运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() { ChapterName = "第1

Android学习——Intent的使用

intent的简单用法 Intent 一些简单用法 传值: Intent intent=new Intent();intent.putExtra("extra", "这是页面一传来的值!");intent.setClass(Test_for_intentActivity.this, actpage2.class);startActivity(intent); 取值: Intent intent=getIntent();String StringE=intent.ge

Android Intent Scheme URLs攻击

0x0 引言 我们知道,在Android上的Intent-based攻击很普遍,这种攻击轻则导致应用程序崩溃,重则可能演变提权漏洞.当然,通过静态特征匹配,Intent-Based的恶意样本还是很容易被识别出来的. 然而最近出现了一种基于Android Browser的攻击手段--Intent Scheme URLs攻击.这种攻击方式利用了浏览器保护措施的不足,通过浏览器作为桥梁间接实现Intend-Based攻击.相比于普通Intend-Based攻击,这种方式极具隐蔽性,而且由于恶意代码隐藏

《Android第一行代码》学习记录03 - 使用Intent切换活动

Intent的使用分为两类: 一.使用显式Intent 显式的Intent就是在实例化Intent时显式提供当前上下文与要跳转活动的上下文,代码如下所示: Intent intent = new Intent(MainActivity.this, OtherActivity.class); startActivity(intent); 二.使用隐式Intent 隐式Intent并不明确指定要启动哪一个活动,而是通过指定action与category,由系统分析启动哪个活动,步骤如下: 1.在An