热点资讯

你的位置:开发旅游小程序的公司 > 小程序开发公司资讯价格 > 联系我们 Android赢得腹舆图片之ACTION_GET_CONTENT与ACTION

联系我们 Android赢得腹舆图片之ACTION_GET_CONTENT与ACTION


发布日期:2024-09-28 14:50    点击次数:71


咱们皆知说念底下两种时势皆不错通达Android腹舆图库:联系我们

Intent.ACTION_GET_CONTENT
    Intent 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位。