当前位置: 首页 > 知识库问答 >
问题:

从android应用程序生成csv文件并从android 12开始共享时出现问题

狄飞鹏
2023-03-14

我想制作csv文件,并为用户提供共享该文件的选项。我使用的这段代码在android 12之前一直运行良好,但android 12并没有授予从应用程序保存文件的权限。

          FileOutputStream fileOutputStream = null;
          final File filePath = new 
           File(Environment.getExternalStorageDirectory().toString() + "/excelFile.csv");

    try {
        fileOutputStream = new FileOutputStream(filePath);
        fileOutputStream.write(239);
        fileOutputStream.write(187);
        fileOutputStream.write(191);
        printWriter = new PrintWriter(new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8));

        printWriter.println("צד" + ","
                + "קבוצה" + ','
                + "שם" + ","
                + "מס' מוזמנים" + ","
                + "נשלחה הזמנה" + ","
                + "סטטוס הגעה" + ","
                + "טלפון" + ","
                + "כתובת מייל" + ","
                + "סכום מתנה משוער" + ","
                + "הערות" + ","
                + "אירועים קשורים");


        Uri uriForFile = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".share", filePath);
        Intent intent = new Intent("android.intent.action.SEND");
        intent.setType("vnd.android.cursor.dir/email");
        intent.putExtra("android.intent.extra.EMAIL", new String[] 
        {"ntamim2006@gmail.com"});
        intent.putExtra("android.intent.extra.STREAM", uriForFile);
        intent.putExtra("android.intent.extra.SUBJECT", "excelFile");
        startActivity(Intent.createChooser(intent, "send"));
        printWriter.flush();
        printWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

我得到了这个错误:

W/System.err:java.io.FileNotFound异常: /storage/emulated/0/excelFile.csv:打开失败:EACCES(权限被拒绝)

共有1个答案

姬衡
2023-03-14

您可以使用此单击此处库[ease-csv]

 类似资料:
  • 我正在使用FB。允许用户使用此代码共享我的页面的ui: 当从 Android 移动应用程序中的嵌入式浏览器共享页面时,用户可以选择要用于打开共享对话框的应用程序。如果选择了脸书应用,则不会有回调响应。在普通的桌面浏览器中,一切都按预期工作。这种行为是预期的吗?

  • 我想用SharingContent将声音从原始文件夹共享到另一个应用程序 我使用此代码共享文本和字符串

  • 问题内容: 我有一个包含一个表的数据库,我想用该表的值生成CSV文件。 实际上,我想通过电子邮件将此CSV文件作为附件发送。我知道将文件作为附件发送到电子邮件中,但是我不知道创建过程或创建CSV格式文件的方法。 请给我建议或想法。 问题答案: 你可以用这个 从这里下载库: http://sourceforge.net/projects/opencsv/ 在这里,您可以找到jar文件。 在您的活动中

  • 我是Python新手,一直在关注我在网上找到的关于解决中国邮递员问题的教程。 我上传了所需的CSV文件,但每当我试图定义用于打印的节点位置数据结构时,它总是说“KeyError:'X”“”,这是我的CSV文件的标题之一 一位朋友告诉我,可能的问题是CSV文件中有空格,但我不确定如何解决这个问题。 我试过使用在线教程中的文件,效果很好,所以我不确定我做错了什么。 是打印(df)运行时得到的输出类型

  • 需要通过应用程序从web服务器下载文件,但该文件没有加载,下面是我使用的代码: 在清单中,我有以下权限:

  • 有没有办法通过终端或者使用android Studio从android应用包生成一个apk文件呢?