我有一个代码可以从存储中获取音频并将 uri 保存到所选的音频。
我还想传递一个附加参数 TimeZoneOfDay
带着 Intent 。
这是执行此操作的代码
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));
我还想在我的 Intent TimeZoneofDay 中添加一个额外的内容。
然而,data.hasExtra(Timezone)
显示false
和data.getExtras()
是 null
.
如何正确传递参数TimeZoneOfDay
?
最佳答案
How to properly pass the parameter TimeZoneOfDay ?
你不知道。您没有编写响应 ACTION_GET_CONTENT
的应用。您不能强制该应用将值放入结果 Intent
的额外值中。
相反,将 2
保留在字段中,并在 onActivityResult()
中使用该字段。此外,由于您在后台时进程可能会终止,因此请在保存的实例状态 Bundle
中保留该 2
。
例如,在this sample app中,我将 File
对象作为字段,然后将其用作 Uri
以便与 ACTION_IMAGE_CAPTURE
一起使用。这样,在 onActivityResult()
中,我就知道图像应该驻留在哪里。
关于android - 通过 Intent 传递额外内容,同时将 Intent 与操作 ACTION_GET_CONTENT 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50011441/