gpt4 book ai didi

android - 是否可以使用 Intent.ACTION_GET_CONTENT 传递额外的数据

转载 作者:行者123 更新时间:2023-12-03 17:06:48 25 4
gpt4 key购买 nike

我的问题很简单。是否可以通过 Intent.ACTION_GET_CONTENT 以某种方式传递额外的数据?其中Activity收到Intent在它的onActivityResult()能读出吗?

现在我尝试使用一些标准的 putExtra() 传递一些数据。但是这些数据在我的 Activity 中消失了。
使用以下代码设置 Intent 。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
intent.putExtra(CURRENT_REQUEST_CODE_TAG, getTargetRequestCode());
getActivity().startActivityForResult(intent, ADD_SIGNAL_REQUEST_CODE);

正如我所说,当我在 Activity 中获得 Intent 时,额外的数据已经消失了。是否有某种标记或设置 Intent 的方法,以便保留额外数据或我错过的其他数据?

如果这是不可能的,是否有任何其他类型的默认/标准方式来做到这一点?笔记。我不想为此使用“共享首选项”。

谢谢!

更新
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
int currentRequestCode = data.getIntExtra(CURRENT_REQUEST_CODE_TAG, -1);
}

在我的 onActivityForResult() 中 getIntExtra()总是返回默认值 -1,而不是我配置 Intent 的那个值,它应该是值 9 或 10。这告诉我额外的数据已经丢失,并且数据对象的调试证实了我的怀疑, Intent 参数不包含任何额外的数据。

我发送的 Intent 似乎与我在 onActivityResult() 中收到的 Intent 不同。我理解这种行为,因为在我的情况下,默认的 Android 文件选择器已打开,让用户选择正确的 MIME 类型的文件,当用户选择文件时,我猜想使用所选文件的 URI 创建一个新的 Intent,但是为什么多余的数据消失了,不应该保留吗?

最佳答案

我不认为您可以通过具有 Intent.ACTION_GET_CONTENT 操作的 Intent 将数据作为 Extras 传递.但你可以尝试这样做:

    Intent extraIntent = getActivity().getIntent() != null ? getActivity().getIntent().getIntent() : new Intent();
extraIntent.putExtra(EXTRA_PHOTO_LOCATION_ID, loc.getId());
extraIntent.putExtra(CURRENT_REQUEST_CODE_TAG, getTargetRequestCode());

getActivity().setIntent(extraIntent);
getActivity().startActivityForResult(intent, ADD_SIGNAL_REQUEST_CODE);

onActivityResult您可以从 Activity 的 Intent 中读取数据:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
int currentRequestCode = getIntent().getIntExtra(CURRENT_REQUEST_CODE_TAG, -1);
}

关于android - 是否可以使用 Intent.ACTION_GET_CONTENT 传递额外的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28253096/

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