Android 是否可以通过Intent.ACTION\u GET\u内容传递额外数据

Android 是否可以通过Intent.ACTION\u GET\u内容传递额外数据,android,android-intent,Android,Android Intent,我的问题很简单。是否有可能以某种方式传递带有意图的额外数据。操作\u获取\u内容接收意图的活动在其onActivityResult()中可以读取哪些内容 现在,我试图用一些标准的putExtra()传递一些数据,但这些数据在我的活动中消失了。 使用以下代码来设置意图 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); intent.putExtra(CURRENT_REQUEST_CO

我的问题很简单。是否有可能以某种方式传递带有
意图的额外数据。操作\u获取\u内容
接收
意图的
活动
在其
onActivityResult()
中可以读取哪些内容

现在,我试图用一些标准的
putExtra()
传递一些数据,但这些数据在我的活动中消失了。 使用以下代码来设置意图

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);
正如我所说,当我在活动中得到意图时,额外的数据就消失了。是否有某种方法来标记或设置意图,以便保留我遗漏的额外数据或其他内容

如果这是不可能的,是否有其他类型的默认/标准方法?注意。对此,我不想使用“共享首选项”

谢谢

更新

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    int currentRequestCode = data.getIntExtra(CURRENT_REQUEST_CODE_TAG, -1);
}
在我的onActivityForResult()中,
getIntExtra()
始终返回默认值-1,而不是我配置意图时使用的值,该值应为9或10。这告诉我额外的数据已经丢失,数据对象的调试证实了我的怀疑,intent参数不包含任何额外的数据


我发送的意图似乎与在onActivityResult()中接收到的意图不同。我理解这种行为,因为在我的例子中,默认的Android文件选择器是打开的,让我们来看看用户选择了一个正确MIME类型的文件,当用户选择一个文件时,我猜一个新的意图是用所选文件的URI创建的,但是为什么额外的数据会消失,不应该保留

您好,请尝试下面的代码

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

现在在调用上述代码的片段中重写onActivityResult方法

我不认为您可以通过Intent将数据作为额外数据传递,Intent的操作为
Intent.action\u GET\u CONTENT
。但您可以尝试这样做:

    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
您可以从活动的意图中读取数据:

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

我很好奇:你有没有试过将动作设定为一般意图?比如{Intent Intent=new Intent();Intent.setAction(Intent.ACTION_GET_CONTENT);Intent.putExtra(…)},另外,您可能需要检查问题#25622235I建议您阅读,或者查看我的@robert是否可以在onActivityResult中查看代码?添加了onActivityResult()还有一些进一步的信息。假设一次只能启动一个活动。第二个超越了意图。。。