android 4.4 不能选择图片问题
来源:互联网 发布:魔盒直播软件 编辑:程序博客网 时间:2024/06/06 18:14
问题描述
android4.4系统上不能选择图片问题
问题分析
选择某些图片文件夹时会报io错误和权限问题
解决方案
这要是android4.4增加了一些图片文件夹的访问,但这些图片文件夹是一些系统应用的文件夹不属于图片浏览器,对此以前的老的api已经不能选择这些图片文件夹。
1)访问之前判断当前系统的版本号
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { String url=PicPictures.getPath(RegisterPersonInfoActivity.this,uri); intent.setDataAndType(Uri.fromFile(new File(url)), "image/*"); }else{ intent.setDataAndType(uri, "image/*"); }
2)大于4.4的版本要做特殊的处理
public static String getPath(final Context context, final Uri uri) {final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;// DocumentProviderif (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {// ExternalStorageProviderif (isExternalStorageDocument(uri)) {final String docId = DocumentsContract.getDocumentId(uri);final String[] split = docId.split(":");final String type = split[0];if ("primary".equalsIgnoreCase(type)) {return Environment.getExternalStorageDirectory() + "/"+ split[1];}// TODO handle non-primary volumes}// DownloadsProviderelse if (isDownloadsDocument(uri)) {final String id = DocumentsContract.getDocumentId(uri);final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"),Long.valueOf(id));return getDataColumn(context, contentUri, null, null);}// MediaProviderelse if (isMediaDocument(uri)) {final String docId = DocumentsContract.getDocumentId(uri);final String[] split = docId.split(":");final String type = split[0];Uri contentUri = null;if ("image".equals(type)) {contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;} else if ("video".equals(type)) {contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;} else if ("audio".equals(type)) {contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;}final String selection = "_id=?";final String[] selectionArgs = new String[] { split[1] };return getDataColumn(context, contentUri, selection,selectionArgs);}}// MediaStore (and general)else if ("content".equalsIgnoreCase(uri.getScheme())) {// Return the remote addressif (isGooglePhotosUri(uri))return uri.getLastPathSegment();return getDataColumn(context, uri, null, null);}// Fileelse if ("file".equalsIgnoreCase(uri.getScheme())) {return uri.getPath();}return null;}
0 0
- android 4.4 不能选择图片问题
- android选择图片问题
- android 4.4 5.0不能获取到图片路径问题详解
- android4.4系统上不能选择图片问题
- 解决Android 4.4 系统图库选择图片问题
- Android WebView不能显示图片问题
- .9图片不能使用问题(Android开发)
- Android选择图片路径不一致的问题
- Android 关于7.0权限相册不能选择 或者联系人不能选择的问题
- android 4.3选择图片“无法加载图片问题”
- 前端图片选择问题
- Android 4.4 的权限问题,导致App 裁剪图片不能保存(已解决)
- Android 4.4 的权限问题,导致App 裁剪图片不能保存(已解决)
- android:drawableLeft的Button不能切换图片问题之解决办法
- android 小米手机不能正确获取图片uri的问题
- Android RadioButton左边图片不能居中显示问题
- android选择本地相册图片路径的问题的解决
- Android 7.0 图片剪切问题,选择头像上传
- PL/SQL Developer 导出表数据
- SharedPreference.Editor的apply和commit方法异同
- maven管理项目如何查找jar包
- jQuery.data() 的实现方式
- PHP学习笔记第【3】天(2014.11.2)--HTML标签学习
- android 4.4 不能选择图片问题
- linux+tomcat无法显示图片验证码
- document.reday onload
- android 单个textview 中显示多种style
- android 5.0系统 EditText控件
- xcode中接入第三方库,导致duplicate symbol报错
- 老忘
- Win7多用户同时远程登录
- android https+ ssl支持