android-Intent应用

1.Activity

    方法:startActivityForResult 和 onActivityResult 相互呼应,

            用于处理返回结果的行为,如微博上用户点击某张图片发布上去

2.Uri

    静态方法:

       Uri.fromParts("package", "com.hq.myapp", null);

       Uri.parse(mailto:123@163.com)

       Uri.fromFile(new File(filename))

    普通方法:

      getPath();

3.Intent

    普通方法:

        addCategory(Intent.CATEGORY_OPENABLE);

        setType("image/*");

        setData(ContactsContract.Contacts.CONTENT_URI);

        addFlags(int flags);

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button bt=(Button)findViewById(R.id.bt);
       bt.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {

     // intent的作用:
        //1.调用浏览器
         Uri uri1=Uri.parse("http://www.baidu.com");//data数据
         Intent intent1=new Intent();
         intent1.setAction(Intent.ACTION_VIEW);
         intent1.setData(uri1);
     //2.电话呼叫功能
         Uri uri2=Uri.parse("tel:10086");
         Intent intent2=new Intent(android.content.Intent.ACTION_CALL,uri2);
     //3.发送短信
        Uri uri3=Uri.parse("smsto:10086");
        Intent intent3=new Intent(Intent.ACTION_SENDTO,uri3);
        intent3.putExtra("sms_body", "welcome to android world");
     //4.发送电子邮件,自己可能有多个邮件客户端,所以用
        intent.createChooser()创建一个ACTION_CHOOSER的intent
      //1.收件人地址,发送邮件的动作
       Uri uri4=Uri.parse("mailto:123@163.com");
       Intent intent4=new Intent(Intent.ACTION_SEND,uri4);
      //2.自己的邮件客户端,和发送的内容
       intent4.putExtra(Intent.EXTRA_EMAIL, "my@gmail.com");
       intent4.putExtra(Intent.EXTRA_TEXT, "android mail");
     //3.指定data数据的类型,默认值
       intent4.setType("text/plain");
     //createChooser启动intent
       startActivity(Intent.createChooser(intent4, "选择Email客户端"));

      //6.播放多媒体文件
            //1.动作:显示视图
            Intent intent6=new Intent();
            intent6.setAction(Intent.ACTION_VIEW);
            //2.设置data和type
            Uri uri6=Uri.parse("file:///sdcard/01.mp3");
            intent6.setDataAndType(uri6, "audio/mp3");
         //7.安装APK文件
            //1.动作:显示视图
            Intent intent7=new Intent ();
            intent7.setAction(Intent.ACTION_VIEW);
            //2.setDataAndType
            //2.1 获取file的路径:Environment.getEx
             String filename=Environment.getExternalStorageDirectory()+"mapp.apk";
            intent7.setDataAndType(Uri.fromFile(new File(filename)), "application/vnd.android.package-archive");
         //8.卸载应用程序:卸载的路径(Uri),卸载的动作(delete)
            Uri uri8=Uri.fromParts("package", "com.hq.myapp", null);
            Intent intent8=new Intent(Intent.ACTION_DELETE,uri8);
         //9.访问联系人
            Intent intent9 =new Intent();
            intent9.setAction(Intent.ACTION_VIEW);
            intent9.setData(ContactsContract.Contacts.CONTENT_URI);
     }}); 
         //10.从图库中选择图片
        //startActivityForResult(intent, requestCode);
        //该intent要返回一张图片(result),所以要调用该方法
        //onActivityResult(int requestCode, int resultCode, Intent data)   
        //两个code的是匹配哪个intent返回的,intent包含了用户选择的结果数据。
          Intent intent=new Intent();
          //1.动作:获取内容get_content
          intent.setAction(Intent.ACTION_GET_CONTENT);
          //2.数据类型Type,image/*
          intent.setType("image/*");
          //3.add类别:该内容必须是可以打开的
          intent.addCategory(Intent.CATEGORY_OPENABLE);
          //4.启动ForResult方法,
          startActivityForResult(intent, 0);
        }
       @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //匹配对应的Intent
           if(requestCode==0&& resultCode==Activity.RESULT_OK)
           {
               //获取data:uri
               Uri uri=data.getData();
               //显示图片
               Toast.makeText(this,uri.getPath(), 100);
           }
    }

 

  

 

  

posted @ 2015-03-12 23:07  beyondbycyx  阅读(200)  评论(0编辑  收藏  举报