【问题标题】:Gallery Intent Not Working画廊意图不起作用
【发布时间】:2015-01-12 05:31:37
【问题描述】:

我遇到了奇怪的行为。我正在尝试使用 Intent 调出画廊。然后 onActivityResult() 我想获取 Uri 并将其转换为位图。我面临的问题是首先选择图像会导致我的手机冻结几秒钟。然后当它返回到 onActivityResult() 时,resultCode 值是-1,即使我选择了一个图像。我的步骤中是否遗漏了什么?

启动图库意图

Intent intent = new Intent(Intent.ACTION_PICK, 
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, GALLERY_REQUEST_CODE);

我的活动结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY_REQUEST_CODE) {
        Uri selectedImageUri = data.getData();
        if (selectedImageUri != null) {
            try {
                String[] filePathColumn = { MediaStore.Images.Media.DATA };
                Cursor cursor = getContentResolver().query(
                        selectedImageUri, filePathColumn, null, null, null);
                cursor.moveToFirst();
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                cursor.close();

                Bitmap mBitmap = BitmapFactory.decodeFile(filePath);
                LogUtil.e(TAG, "mBitmap: " + mBitmap);
                ByteArrayOutputStream bs = new ByteArrayOutputStream();
                mBitmap.compress(Bitmap.CompressFormat.PNG, 50, bs);

                Intent intent = new Intent(CameraActivity.this,
                        SecondActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
                        | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("image", bs.toByteArray());
                startActivity(intent);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    } else {
        return;
    }
}

更新: 我在清单中有权限。我也收到了正确的 Uri。但是在选择图像后,我总是收到 resultCode = -1。我似乎收到了失败的活页夹交易。

我可能缺少任何权限吗?提前谢谢!

【问题讨论】:

标签: android android-intent android-gallery


【解决方案1】:

要使此代码正常工作,您需要编写权限检查,如果您的清单中有此代码。

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

【讨论】:

  • 这并不能解决冲突。从图库中选择图像后,仍然需要几秒钟才能返回应用程序。 resultCode = -1,但是,我可以看到我正在从图像中检索正确的 Uri。此外,启动新 Activity 的意图也不起作用。
  • resultCode -1 表示处理请求时出错,检查并发布 logcat 详细信息。
  • 我没有看到常见的错误,所以我没有多想。但我现在确实看到了一些东西。这是一个“失败的活页夹交易”
猜你喜欢
  • 1970-01-01
  • 2018-03-24
  • 2013-12-03
  • 1970-01-01
  • 2017-11-26
  • 2012-08-29
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
相关资源
最近更新 更多