gpt4 book ai didi

android - 获取图像的 ACTION_GET_CONTENT 返回空 URI

转载 作者:行者123 更新时间:2023-12-05 00:07:44 26 4
gpt4 key购买 nike

我有一个使用 ACTION_GET_CONTENT 的已发布应用程序 Intent 让用户选择他/她的一张照片。这是启动 Intent 的代码:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
intent.putExtra(Intent.CATEGORY_OPENABLE, true);
startActivityForResult(Intent.createChooser(intent, getString(R.string.select_pic)), SELECT_IMAGE);
这是 onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode == RESULT_OK) {
if (requestCode == SELECT_IMAGE) {
if (data != null) {
Uri uri = data.getData();
...
}
}
}
}

super.onActivityResult(requestCode, resultCode, data);
}
这里的问题是,在某些设备上, uri即使用户选择了图像,也为 null。主要是三星设备和一些摩托罗拉手机。我也试过 ACTION_PICK而不是 ACTION_CONTENT ,但它也发生在其他一些设备上。所以我想知道是否有办法让用户选择一张通用的图片。
一些遭受此问题的手机是:
  • 三星 Galaxy A21S - Android 11 (SDK 30)
  • 三星 Galaxy A3 (2016) - Android 7.0 (SDK 24)
  • 摩托罗拉 moto e6 play - Android 9 (SDK 28)

  • 这些受影响设备的一些用户通知说它只是偶尔发生。

    最佳答案

    OnActivityResult 已弃用
    尝试新方法

    ActivityResultLauncher<String> launcher;

    .....

    Button pick = findViewById(R.id.pick);
    pick.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    launcher.launch("image/*");
    }
    });

    launcher = registerForActivityResult(new ActivityResultContracts.GetContent(), new ActivityResultCallback<Uri>() {
    @Override
    public void onActivityResult(Uri result) {

    }
    });

    }

    关于android - 获取图像的 ACTION_GET_CONTENT 返回空 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70068185/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com