您的位置:首页 > 其它

《Intent的一些用法(不断更新)》

2014-03-12 14:09 337 查看

 

intent 

Intent用法实例 

1.无参数Activity跳转 

Java代码  


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

startActivity(it);   

  

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

Java代码  


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代码  


Bundle bundle=getIntent().getExtras();  

String name=bundle.getString("name");  

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

Java代码  


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代码  


@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. Uri uri = Uri.parse("http://google.com");    

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

   3. startActivity(it);   

   
显示地图 

Java代码  


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. 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. //叫出拨号程序   

   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. //调用短信程序   

   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. 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代码  


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代码  


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代码  


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代码  


显示某个应用的相关信息   

       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代码  


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代码  


Uri uri = Uri.fromParts("package", strPackageName, null);   

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

        startActivity(it);    

        

返回桌面 

Java代码  


Intent unMyIntent = new Intent(Intent.ACTION_MAIN);  

            unMyIntent.addCategory(Intent.CATEGORY_HOME);  

            startActivity(unMyIntent);  

发邮件 

Java代码  


Uri uri = Uri.parse("mailto:fengsheng.studio@hotmail.com");           

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

发送文件 

Java代码  


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代码  


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代码  


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代码  


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代码  


Intent intent = new Intent();  

        /* 设置为image */  

        intent.setType("image/*");  

        /* 使用Intent.ACTION_GET_CONTENT这个Action */  

        intent.setAction(Intent.ACTION_GET_CONTENT);  

        /* 取得图片后返回本画面 */  

        startActivityForResult(intent, 1);  
转自:http://qq361119908.iteye.com/blog/631534
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  intent