在android 开发中,很多时候,我们会需要调用到用户本机的照片、视频或者是音乐让用户选择,来进行我们APP对应的操作。
1 button.setOnClickListener(new OnClickListener() { 2 3 public void onClick(View arg0) { 4 //get a picture form your phone 5 Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT); 6 photoPickerIntent.setType("image/*"); 7 //intent.setType(“image/*”); 8 //下面三个如果在 ACTION_PICK 下没效,就用ACTION_GET_CONTENT,这个会提示你用那个软件打开 9 //intent.setType(“audio/*”); //选择音频 10 11 //intent.setType(“video/*”); //选择视频 (mp4 3gp 是android支持的视频格式) 12 13 //intent.setType(“video/*;image/*”);//同时选择视频和图片 14 startActivityForResult(Intent.createChooser(photoPickerIntent, "Select"),1); 15 } 16 });
对于上述的最后一行:
startActivityForResult(Intent.createChooser(photoPickerIntent, "Select"),1);
使用 createChooser()打开的好处是,程序会自动弹出一个对话框,对话框的名字可以自己设置,我demo 里设置的是 Select,弹出的这个框,作用是让用户选择,基于本机手机已经安装了的,能够打开当前文件的 应用。
举个例子,我要打开音乐,而我手机 同时 有 天天动听 和酷狗,那么它就会提示我,用酷狗还是天天动听。
还一种方法是,默认的直接打开:
startActivityForResult(photoPickerIntent,1);
这种方法有时候会显示不出来,原因是,程序的运行的时候,检测到本机有多个音乐或者图片的总体类型,它识别不了。