我有一个代码可以从存储中获取音频并将URI保存到选定的音频。
我也想通过意图传递其他参数TimeZoneOfDay
。
这是执行此操作的代码
Intent intent_upload = new Intent();
intent_upload.setType("audio/*");
intent_upload.putExtra(TimeZoneOfDay,2);
// Bundle b = new Bundle();
//b.putInt(TimeZoneOfDay,2);
intent_upload.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent_upload,1);
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
Log.e(Tag, "Onactivity result called");
if(requestCode == 1){
Toast.makeText(this, "file choosen",Toast.LENGTH_SHORT).show();
if(resultCode == RESULT_OK){
Uri uri = data.getData();
Bundle b = data.getExtras();
Log.e(Tag, "dcs "+data.hasExtra(TimeZoneOfDay)+ String.valueOf(b!=null));
我也想在我的意图时代添加一个额外的时间。但是,data.hasExtra(Timezone)
显示false
,data.getExtras()
是null
。
如何正确传递参数TimeZoneOfDay
?
如何正确传递参数TimeZoneofDay?
你不。您没有编写响应ACTION_GET_CONTENT
的应用程序。您不能强迫该应用程序在结果Intent
的额外添加值。
相反,将2
固定在一个字段中,然后在您的onActivityResult()
中使用该字段。另外,由于您的过程可能在您在后台时终止,因此请在保存的实例状态Bundle
中保留该2
。
例如,在此示例应用程序中,我将File
对象作为字段保留,然后将其用于Uri
与ACTION_IMAGE_CAPTURE
一起使用。这样,在onActivityResult()
中,我知道图像应位于哪里。
您可以查看此答案,以检查您是否不丢失任何东西。
https://stackoverflow.com/a/22554156/6284141