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