share/export 如何在 Java Android 中生成 JSON 文件
How share/export a JSON file in Java Android
我创建了一个生成 JSON 文件并保存在 /data/data/ 路径中的代码,我想获取 selected 文件和 share/export。我正在尝试使用 Intent,请遵循代码:
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
File fileItem = itens.get(position);
holder.textFileName.setText(fileItem.getName());
holder.shareImage.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/json");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/" + fileItem));
context.startActivity(Intent.createChooser(intent, "Compartilhar log de auditoria"));
});
}
但是当我 select 像在文件管理器中一样保存媒体时 select 文件夹显示“不正确的路径”并且在所有应用程序中显示附件不兼容。求助!
OBS:我正在 RecyclerView 中实现代码 class
在@CommonsWare 的评论之后,我使用了 FileProvider,现在我可以 share/export 一个 JSON 文件,按照工作代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/json");
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, fileItem);
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent, "Exportar arquivo de Log de Auditoria"));
我创建了一个生成 JSON 文件并保存在 /data/data/ 路径中的代码,我想获取 selected 文件和 share/export。我正在尝试使用 Intent,请遵循代码:
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
File fileItem = itens.get(position);
holder.textFileName.setText(fileItem.getName());
holder.shareImage.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/json");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/" + fileItem));
context.startActivity(Intent.createChooser(intent, "Compartilhar log de auditoria"));
});
}
但是当我 select 像在文件管理器中一样保存媒体时 select 文件夹显示“不正确的路径”并且在所有应用程序中显示附件不兼容。求助!
OBS:我正在 RecyclerView 中实现代码 class
在@CommonsWare 的评论之后,我使用了 FileProvider,现在我可以 share/export 一个 JSON 文件,按照工作代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/json");
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, fileItem);
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent, "Exportar arquivo de Log de Auditoria"));