• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yuzaipiaofei
博客园    首页    新随笔    联系   管理    订阅  订阅

Intent的一些用法

 

Intent用法实例

1.无参数Activity跳转

Java代码 复制代码 收藏代码
  1. Intent it = new Intent(Activity.Main.this, Activity2.class);   
  2. startActivity(it);   
Intent it = new Intent(Activity.Main.this, Activity2.class);
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);  
Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle);       // it.putExtra(“test”, "shuju”);
startActivity(it);            // startActivityForResult(it,REQUEST_CODE);



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

Java代码 复制代码 收藏代码
  1. Bundle bundle=getIntent().getExtras();   
  2. String name=bundle.getString("name");  
Bundle bundle=getIntent().getExtras();
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);  
Intent intent=getIntent();
        Bundle bundle2=new Bundle();
        bundle2.putString("name", "This is from ShowMsg!");
        intent.putExtras(bundle2);
        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.     }  
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==REQUEST_CODE){
            if(resultCode==RESULT_CANCELED)
                  setTitle("cancle");
            else if (resultCode==RESULT_OK) {
                 String temp=null;
                 Bundle bundle=data.getExtras();
                 if(bundle!=null)   temp=bundle.getString("name");
                 setTitle(temp);
            }
        }
    }



下面是转载来的其他的一些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);   
1. Uri uri = Uri.parse("http://google.com");  
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);  
   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   
1. Uri uri = Uri.parse("geo:38.899533,-77.036476");  
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
   3. startActivity(it);   
   4. //其他 geo URI 範例  
   5. //geo:latitude,longitude  
   6. //geo:latitude,longitude?z=zoom  
   7. //geo:0,0?q=my+street+address  
   8. //geo:0,0?q=business+near+city  
   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    
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);  
   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" />    
1. //叫出拨号程序 
   2. Uri uri = Uri.parse("tel:0800000123");  
   3. Intent it = new Intent(Intent.ACTION_DIAL, uri);  
   4. startActivity(it);  
   1. //直接打电话出去  
   2. Uri uri = Uri.parse("tel:0800000123");  
   3. Intent it = new Intent(Intent.ACTION_CALL, uri);  
   4. startActivity(it);  
   5. //用這個,要在 AndroidManifest.xml 中,加上  
   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);    
1. //调用短信程序 
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);  
   3. it.putExtra("sms_body", "The SMS text");   
   4. it.setType("vnd.android-dir/mms-sms");  
   5. startActivity(it); 
   1. //传送消息 
   2. Uri uri = Uri.parse("smsto://0800000123");  
   3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);  
   4. it.putExtra("sms_body", "The SMS text");  
   5. startActivity(it); 
   1. //传送 MMS  
   2. Uri uri = Uri.parse("content://media/external/images/media/23");  
   3. Intent it = new Intent(Intent.ACTION_SEND);   
   4. it.putExtra("sms_body", "some text");   
   5. it.putExtra(Intent.EXTRA_STREAM, uri);  
   6. it.setType("image/png");   
   7. startActivity(it);  

  

传送 Email
Java代码 复制代码 收藏代码
  1. 1. Uri uri = Uri.parse("mailto:xxx@abc.com");     
  2.   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);     
  3.   3. startActivity(it);     
  4.   
  5.   
  6.   1. Intent it = new Intent(Intent.ACTION_SEND);     
  7.   2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");     
  8.   3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");     
  9.   4. it.setType("text/plain");     
  10.   5. startActivity(Intent.createChooser(it, "Choose Email Client"));     
  11.   
  12.   
  13.   1. Intent it=new Intent(Intent.ACTION_SEND);       
  14.   2. String[] tos={"me@abc.com"};       
  15.   3. String[] ccs={"you@abc.com"};       
  16.   4. it.putExtra(Intent.EXTRA_EMAIL, tos);       
  17.   5. it.putExtra(Intent.EXTRA_CC, ccs);       
  18.   6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");       
  19.   7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");       
  20.   8. it.setType("message/rfc822");       
  21.   9. startActivity(Intent.createChooser(it, "Choose Email Client"));  
 1. Uri uri = Uri.parse("mailto:xxx@abc.com");  
   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);  
   3. 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"));

  


   传送附件
  
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"));   
Intent it = new Intent(Intent.ACTION_SEND);  
   it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");  
   it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");  
   sendIntent.setType("audio/mp3");  
   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);   
 Uri uri = Uri.parse("file:///sdcard/song.mp3");  
       Intent it = new Intent(Intent.ACTION_VIEW, uri);  
       it.setType("audio/mp3");  
       startActivity(it); 
       Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");  
       Intent it = new Intent(Intent.ACTION_VIEW, uri);  
       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);    
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
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   
 显示某个应用的相关信息 
        Uri uri = Uri.parse("market://details?id=app_id");  
       Intent it = new Intent(Intent.ACTION_VIEW, uri); 
        startActivity(it);  
        //where app_id is the application ID, find the ID   
        //by clicking on your application on Market home   
        //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);  
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.android.settings","com.android.settings.fuelgauge.PowerUsageSummary");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);


Uninstall 应用程序
Java代码 复制代码 收藏代码
  1. Uri uri = Uri.fromParts("package", strPackageName, null);    
  2.        Intent it = new Intent(Intent.ACTION_DELETE, uri);      
  3.         startActivity(it);    
Uri uri = Uri.fromParts("package", strPackageName, null); 
       Intent it = new Intent(Intent.ACTION_DELETE, uri);   
        startActivity(it);  
       

返回桌面
Java代码 复制代码 收藏代码
  1. Intent unMyIntent = new Intent(Intent.ACTION_MAIN);   
  2.             unMyIntent.addCategory(Intent.CATEGORY_HOME);   
  3.             startActivity(unMyIntent);  
Intent unMyIntent = new Intent(Intent.ACTION_MAIN);
    		unMyIntent.addCategory(Intent.CATEGORY_HOME);
    		startActivity(unMyIntent);



发邮件
Java代码 复制代码 收藏代码
  1. Uri uri = Uri.parse("mailto:fengsheng.studio@hotmail.com");            
  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);  
Uri uri = Uri.parse("mailto:fengsheng.studio@hotmail.com");  		
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. 以上有两个变量需要说明:   
  8. 1. mimeType: 如果是图片,则为"image/*",如果是音频,则为"audio/*",如果是视频,则为"video/*"  
  9. 2. uri:如果是直接读取到文件路径并发送,则为Uri.fromFile(new File(filePath));   
  10.          如果是从数据库中查循出来的uri,则直接传入即可.  
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_STREAM, uri);
 startActivity(intent);

以上有两个变量需要说明:
1. mimeType: 如果是图片,则为"image/*",如果是音频,则为"audio/*",如果是视频,则为"video/*"
2. uri:如果是直接读取到文件路径并发送,则为Uri.fromFile(new File(filePath));
         如果是从数据库中查循出来的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);  
Intent intent = new Intent(Intent.ACTION_VIEW, 
            Uri.parse("market://details?id=pname:org.rabold.android.puzzleblox"));
            //Uri.parse("market://search?q=pname:org.rabold.android.puzzleblox"));
            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");  
Uri photoUri = Uri.fromFile(new File("/mnt/sdcard/ruhua.jpg"));
				Log.i("path", photoUri.toString());
			    Intent intent = new Intent("com.android.camera.action.CROP");
			    intent.setDataAndType(photoUri, "image/*");
			    intent.putExtra("crop", "true");
			    intent.putExtra("aspectX", 1);
			    intent.putExtra("aspectY", 1);
			    intent.putExtra("outputX", 80);
			    intent.putExtra("outputY", 80);
			    intent.putExtra("output", photoUri);
				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, "分享"));  
Intent mIntent = new Intent(Intent.ACTION_SEND);
//根据分享的内容设置不同的mimeType			mIntent.setType("text/plain");
mIntent.putExtra(Intent.EXTRA_TEXT, "下载地址?");
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
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);  
posted @ 2013-12-19 17:32  yuzaipiaofei  阅读(277)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3