目标:点击头像打开系统自带相册

参考:android打开系统图库终极适配,Android个人中心的头像上传,图片编码及截取

android中调用系统图库本来是一个很基本的东西,几乎每个app都用的到(最基本的更换用户头像),网上的相关容很多,本来找了几篇看了一下,拿几台测试机试了一下感觉就没什么问题了,但是适配问题慢慢就来了。

一.打开图库的基本方法。

通过查询资料,调用系统图库基本有3种方法。

1.使用Intent.ACTION_PICK

程序:

Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media. EXTERNAL_CONTENT_URI); //调用android的图库

//i.setType("image/*");//不可设置type,否则noactivityfound

startActivityForResult(Intent. createChooser(i,null) , 2) ;

        这个intent在android6.0以下是可以用的,但是到了6.0就无效了,具体打印log忘记了,官方文档也只用了这

Intent来获取留联系人,所以pass掉。

2.使用Intent.ACTION_GET_CONTENT

程序:

action_get_content是通过intent中设置的type属性来判断具体调用哪个程序的。官方文档上说,这个intent是用来“检索一个特定类型的文件”并且回返回检索到的文件的一个引用(文件的copy)这个貌似是可以用的,而且也是大多数人选择。

3.使用Intent.ACTION_OPEN_DOCUMENT

程序:

这个action只支持4.4以上的版本。官方文档上说,这个intent是用来“打开一个特定类型的文件”,与检索相比,感觉跟适合我们的应用场景。同样可以使用EXTRA_ALLOW_MULTIPLE来支持多选。这个貌似更适合,只是需要判断sd版本,4.4及以上使用ACTION_OPEN_DOCUMENT,4.3及以下用Intent.ACTION_GET_CONTENT,这也是一些比较好的攻略

4.常见的Activity Action Intent常量用法

调用图库,获取所有本地图片:

Intent imageIntent = new Intent();

intent.setAction(Intent.ACTION_GET_CONTENT);

imageIntent.setType("image/*");

startActivityForResult(imageIntent,PICK_CODE); //PICK_CODE是常量

调用本地联系人

Intent intent = new Intent(Intent.ACTION_PICK);

intent.setType(ContactsContract.Contacts.CONTENT_TYPE);

startActivityForResult(intent,PICK_CONTACT);

或者:

金乐demo1例子

调用音乐,获取所有本地音乐文件:

Intent audioIntent = new Intent(Intent.ACTION_GET_CONTENT);

audioIntent.setType("audio/*");

startActivityForResult(audioIntent,PICK_AUDIO);

调用视频,获取所有本地视频文件:

Intent videoIntent = new Intent(Intent.ACTION_GET_CONTENT);

videoIntent.setType("video/*");

startActivityForResult(videoIntent,PICK_VIDEO);

打开网页链接Intent.ACTION_VIEW

金乐demo1例子

⑥发送邮件,Intent.ACTION_SENDTO


金乐demo1例子

使用方法

更多相关文章

  1. Android的简单应用(三)——为你的程序添加监听器
  2. 应用程序如何获取系统权限
  3. [置顶] android 从资源中获取数组
  4. Unity与Android交互方案优化版
  5. Android中Activity生命周期说明及使用
  6. Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统
  7. 【Android的从零单排开发日记】之入门篇(五)——Android四大组件之
  8. Android(安卓)Studio3.0开发JNI流程------JNI中字符串拼接的三种
  9. android 记事本demo!!!(listview与SQLite综合)

随机推荐

  1. Android实现伸缩弹力分布菜单效果
  2. Android自定义视图
  3. Android消息循环的同步屏障机制及UI渲染
  4. 深入探索Android稳定性优化
  5. Android平板上开发App的准则
  6. 如何将Android应用发布到Google Play(Andr
  7. Android(安卓)27+ 限制App所有未加密的ht
  8. android静默安装探讨(申请加精)
  9. 有板有眼:Google如何利用Moto的专利来帮助
  10. Android(安卓)NDK Hello + JNI 与 NDK区