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()还有一些进一步的信息。假设一次只能启动一个活动。第二个超越了意图。。。