android 如何获取手机的图片、视频、音乐

在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);
这种方法有时候会显示不出来,原因是,程序的运行的时候,检测到本机有多个音乐或者图片的总体类型,它识别不了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

软件更新时候出现和原包名冲突

如果你是一个开发人员,那么出现这个问题可能是因为,较旧的版本你是使用eclipse自动发布到模拟器上的,而eclipse自动发布时使用的是一个测试用签名,这个签...

19960
来自专栏移动开发

Andorid检测支付宝客户端是否安装

22040
来自专栏码农笔录

Android N 7.0 上安装apk问题

14330
来自专栏程序员互动联盟

【Android基础】Android中的Intent详解

前言: 每个应用程序都有若干个Activity组成,每一个Activity都是一个应用程序与用户进行交互的窗口,呈现不同的交互界面。因为每一个Acticity...

45570
来自专栏指尖下的Android

安卓7.0在线更新解析包时出现问题

关于7.0行为变更,FileProvider应用共享文件的问题可以看鸿洋大佬的这篇博客 https://blog.csdn.net/lmj623565791/...

55320
来自专栏分享达人秀

四大组件的纽带——Intent

前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Act...

23250
来自专栏Android干货

安卓开发_求好评功能

281100
来自专栏Android干货

Android项目实战(四十):Andoird 7.0+ 安装APK适配

32060
来自专栏拭心的安卓进阶之路

Android 进阶2:Activity 的 Task 与启动模式

Android 中的 Task 是什么 我们知道,一个应用中可能有多个 Activity,而这些 Activity 被以栈的形式管理。当我们新打开 Activi...

21850
来自专栏緣來來來

安卓基础干货(七):安卓广播的学习

android应用程序里面的电台:系统内置的一个服务,会把事件(电量不足、电量充满、开机启动完成)作为一个广播消息发送其他的接收者;

12510

扫码关注云+社区

领取腾讯云代金券