热点资讯
联系我们 Android赢得腹舆图片之ACTION_GET_CONTENT与ACTION
发布日期:2024-09-28 14:50 点击次数:71
咱们皆知说念底下两种时势皆不错通达Android腹舆图库:联系我们
Intent.ACTION_GET_CONTENTIntent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, REQUEST_CODE_DOCUMENT);Intent.ACTION_PICK
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); startActivityForResult(intent, REQUEST_CODE_ALBUM);然则他们之间的辨认是什么呢?
Intent.ACTION_GET_CONTENT赢得的是所有这个词腹舆图片, Intent.ACTION_PICK赢得的是相册中的图片。
Intent.ACTION_PICK复返的uri时势唯有一种:比如 uri=content://media/external/images/media/34;
而Intent.ACTION_GET_CONTENT复返的uri时势:
小程序开发在Android版块4.4以下同Intent.ACTION_PICK复返的一 样,
Android版块4.4以上则复返多种时势:如 uri=content://com.android.providers.media.documents/document/image:245743, uri=file:///storage/emulated/0/temp_photo.jpg, uri=content://media/external/images/media/193968 …
Intent.ACTION_GET_CONTENT必须成就setType("image/*")示意复返的数据类型,不然会报 android.content.ActivityNotFoundException尽头。
底下就Intent.ACTION_GET_CONTENT复返的多种时势证明不同版正本处治: Android4.4之后处治:/** * 证明Uri赢得图片旅途,专为Android4.4蓄意 * @param act * @param uri * @return */ @TargetApi(Build.VERSION_CODES.KITKAT) public static String getPathFromUriOnKitKat(Activity act, Uri uri) { /** * uri=content://com.android.providers.media.documents/document/image:293502 4.4以后 * uri=file:///storage/emulated/0/temp_photo.jpg * uri=content://media/external/images/media/193968 * * uri=content://media/external/images/media/13 4.4畴昔 */ String path = null; if (DocumentsContract.isDocumentUri(act, uri)) { // 若是是document类型的Uri,则通过document id处治 String docId = DocumentsContract.getDocumentId(uri); if ("com.android.providers.media.documents".equals(uri.getAuthority())) { String id = docId.split(":")[1]; // 领路出数字时势的id String selection = MediaStore.Images.Media._ID + "=" + id; path = getPathFromUri(act, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, selection); } else if ("com.android.providers.downloads.documents".equals(uri.getAuthority())) { Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(docId)); path = getPathFromUri(act, contentUri, null); } } else if ("content".equalsIgnoreCase(uri.getScheme())) { // 若是是content类型的Uri,则使用鄙俚方式处治 path = getPathFromUri(act, uri, null); } else if ("file".equalsIgnoreCase(uri.getScheme())) { // 若是是file类型的Uri,径直赢得图片旅途即可 path = uri.getPath(); } return path; }Android4.4之前处治:
/** * 证明Uri赢得图片旅途,Android4.4畴昔 * @param act * @param uri * @return */ public static String getPathFromUriBeforeKitKat(Activity act, Uri uri) { return getPathFromUri(act, uri, null); } /** * 通过Uri和selection来赢得真确的图片旅途 * @param act * @param uri * @param selection * @return */ private static String getPathFromUri(Activity act, Uri uri, String selection) { String path = null; String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = act.getContentResolver().query(uri, projection, selection,null,null); if(cursor != null){ if(cursor.moveToFirst()){ path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); } cursor.close(); } return path; }Intent.ACTION_GET_CONTENT不单是不错赢得腹地的图片,还不错赢得腹地的音频,视频等,开发旅游小程序的公司雷同Intent.ACTION_PICK不单是赢得图片,还不错赢得腹地关系东说念主等
(一)、调用腹地关系东说念主: Intent intent=newIntent(Intent.ACTION_PICK); intent.setType(ContactsContract.Contacts.CONTENT_TYPE); startActivityForResult(intent,PICK_CONTACT); (二)、调用图库,赢得所有这个词腹舆图片: Intent imageIntent=newIntent(Intent.ACTION_GET_CONTENT); imageIntent.setType("image/*"); startActivityForResult(imageIntent,PICK_IMAGE); (三)、调用音乐,赢得所有这个词腹地音乐文献: Intent audioIntent=newIntent(Intent.ACTION_GET_CONTENT); audioIntent.setType("audio/*"); startActivityForResult(audioIntent,PICK_AUDIO); (四)、调用图库,赢得所有这个词腹地视频文献: Intent videoIntent=newIntent(Intent.ACTION_GET_CONTENT); videoIntent.setType("video/*"); startActivityForResult(videoIntent,PICK_VIDEO);本站仅提供存储行状,所有这个词推行均由用户发布,如发现存害或侵权推行,请点击举报。
上升选手之中李淑瑛在女子韩巡乐天公开赛中并列位于39位,获得0.62分,世界排名从368位上升到354位。
亚军玛丽娅-埃尔南德斯(Maria Hernandez)来自西班牙联系我们,获得10.8分,世界排名从251位上升到188位。