【问题标题】:in android 11(sdk 30) ,how to upload pdf file from downloads folder? i am getting permission denied EACCES message在 android 11(sdk 30) 中,如何从下载文件夹上传 pdf 文件?我收到权限被拒绝的 EACCES 消息
【发布时间】:2021-08-23 01:27:17
【问题描述】:

它在带有 requestLegacyExternalStorage="true" 标签的 android 10 中运行良好。该应用程序就像whatsapp,因此用户可以选择文件/图像/位置并将其发送给另一个用户。图像和位置工作正常,但上传文件时出现错误。我认为我的应用不符合 MANAGE_EXTERNAL_STORAGE 权限。因此,如果您有任何解决方案,请分享。

获得 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 运行时权限后我的文件选择器。

    Intent intent = new Intent();
    intent.setType("*/*");
    intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(Intent.createChooser(intent, "Select File"), 1);

在 OnActivityResult 中,我在全局变量的“文件”中获取文档。

       Uri uri = data.getData();
       // Log.e("cs","uri =>"+uri);

        file = new File(uri.getPath());

        final String[] split = file.getPath().split(":");//split the path.
        String filePath = split[1];//assign it to a string(your choice).

        //Log.e("cs","filepath=>"+filePath);

        file = new File(filePath);

       // Log.e("cs","file=>"+file.exists());

上传文件时出现问题

    RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
    MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file.getName(), requestBody);

所以在改造中它会进入 onFailure 并且我收到错误 :: open failed: EACCES (Permission denied) 。

【问题讨论】:

  • stackoverflow.com/questions/66964812/… 你检查过这个帖子吗
  • 嗨,我检查了线程但是,我已经在使用 ACTION_OPEN_DOCUMENT 并且我认为 MANAGE_EXTERNAL_STORAGE 不能解决问题。此应用可能会被 Play 商店拒绝,并且此应用已在生产中。
  • 显示您的代码。就像用户使用 ACTION_OPEN_DOCUMENT 选择了一个文件一样,您不需要任何进一步的权限即可使用该文件。
  • @blackapps 请检查编辑中的代码
  • 您没有显示在 onActivityResult 中获得的内容。不是file,我们都知道。请发布完整的代码,以便我们知道您做错了什么。好吧,我们已经知道了.. 但你应该展示它;-) 此时你甚至没有告诉你你做了什么。

标签: android sdk file-permissions


【解决方案1】:

你需要添加的解决方案

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

在manifest文件中,尝试在android 11手机中获取文件访问权限。然后您将打开并从存储中读取文件。

【讨论】:

    猜你喜欢
    • 2019-07-12
    • 2020-06-03
    • 2021-12-23
    • 2021-07-02
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2015-07-11
    相关资源
    最近更新 更多