首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中如何使用intent打开系统内置的图库应用程序?

在Android中如何使用intent打开系统内置的图库应用程序?
EN

Stack Overflow用户
提问于 2016-11-07 19:09:40
回答 3查看 2.3K关注 0票数 0

在我的应用程序中,我试图只打开默认的内置图库应用程序,甚至没有照片应用程序和其他文件资源管理器应用程序。点击按钮就会直接登陆画廊,我该怎么做呢?

我的代码'Intent = new Intent(Intent.ACTION_PICK);intent.setType("image/*");startActivityForResult( intent,PICK_IMAGE);‘

EN

回答 3

Stack Overflow用户

发布于 2016-11-07 19:17:01

试试这个..。

代码语言:javascript
运行
复制
 private int PICK_IMAGE_REQUEST = 1;

tvGallery.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent();
                    // Show only images, no videos or anything else
                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    // Always show the chooser (if there are multiple options available)
                    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);


                }
            });

安卓Manifest文件中的

使用权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

票数 0
EN

Stack Overflow用户

发布于 2016-11-07 19:19:23

像这样尝试

代码语言:javascript
运行
复制
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);//
    startActivityForResult(Intent.createChooser(intent, "Select Picture"),PICK_IMAGE);

用于获取图像的OnActivityResult

代码语言:javascript
运行
复制
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE)
    {
        if (resultCode == Activity.RESULT_OK)
        {
            if (data != null)
            {
                try
                {

                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), data.getData());

                } catch (IOException e)
                {
                    e.printStackTrace();
                }

            }
        } else if (resultCode == Activity.RESULT_CANCELED)
        {
            Toast.makeText(getActivity(), "Cancelled", Toast.LENGTH_SHORT).show();
        }
    } }

在清单文件中添加权限

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"  />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
票数 0
EN

Stack Overflow用户

发布于 2016-11-07 19:22:06

试试这个:-

代码语言:javascript
运行
复制
public static final int GALLERY_PICTURE = 1;
private String selectedImagePath = null;

Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent, "Select File"), GALLERY_PICTURE);

onActivityResult()  :-

if (requestCode == GALLERY_PICTURE && resultCode == RESULT_OK) {
            selectedImagePath = getRealPathFromURI_API19(this, data.getData());
            Log.e("gallery path", selectedImagePath);  
        }


@SuppressLint("NewApi")
    public static String getRealPathFromURI_API19(Context context, Uri uri) {
        String filePath = "";
        String wholeID = DocumentsContract.getDocumentId(uri);
        String id = wholeID.split(":")[1];
        String[] column = {MediaStore.Images.Media.DATA};
        String sel = MediaStore.Images.Media._ID + "=?";
        Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                column, sel, new String[]{id}, null);
        int columnIndex = cursor.getColumnIndex(column[0]);
        if (cursor.moveToFirst()) {
            filePath = cursor.getString(columnIndex);
        }
        cursor.close();
        return filePath;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40463741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档