在使用Action_get_content意图时,以意图方式传递Extras



我有一个代码可以从存储中获取音频并将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)显示falsedata.getExtras()null

如何正确传递参数TimeZoneOfDay

如何正确传递参数TimeZoneofDay?

你不。您没有编写响应ACTION_GET_CONTENT的应用程序。您不能强迫该应用程序在结果Intent的额外添加值。

相反,将2固定在一个字段中,然后在您的onActivityResult()中使用该字段。另外,由于您的过程可能在您在后台时终止,因此请在保存的实例状态Bundle中保留该2

例如,在此示例应用程序中,我将File对象作为字段保留,然后将其用于UriACTION_IMAGE_CAPTURE一起使用。这样,在onActivityResult()中,我知道图像应位于哪里。

您可以查看此答案,以检查您是否不丢失任何东西。

https://stackoverflow.com/a/22554156/6284141

最新更新