首页 > 解决方案 > 在使用带有动作 ACTION_GET_CONTENT 的意图时传递带有意图的附加内容

问题描述

我有一个代码可以从存储中获取音频并将 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));

我还想在我的意图 TimeZoneofDay 中添加一个额外的内容。但是, data.hasExtra(Timezone)正在显示false并且data.getExtras()null

如何正确传递参数TimeZoneOfDay

标签: android

解决方案


如何正确传递参数 TimeZoneOfDay ?

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

相反,保留2一个字段,并在您的onActivityResult(). 此外,由于您的进程可能会在您处于后台时终止,因此请2在保存的实例状态中保持该进程Bundle

例如,在这个示例应用程序中,我将一个File对象作为一个字段,然后将其用于Urifor 与ACTION_IMAGE_CAPTURE. 这样,在 中onActivityResult(),我知道图像应该驻留的位置。


推荐阅读