V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
atusss
V2EX  ›  Android

无法读取通话自动录音文件

  •  
  •   atusss · 281 天前 · 3649 次点击
    这是一个创建于 281 天前的主题,其中的信息可能已经有所发展或是发生改变。
    String directoryPath = "/storage/emulated/0/Sounds/CallRecord/"
    在这个文件夹里,确实是有录音文件的。但是我通过
    File[] callRecordFiles = soundRecorderDir.listFiles();
    只能获取到一个/storage/emulated/0/Sounds/CallRecord/.nomedia
    如果我把录音文件放在/storage/emulated/0/Sounds/就能正常获取到
    用的是华为手机,请问应该如何处理呢?
    10 条回复    2023-07-27 10:56:23 +08:00
    atusss
        1
    atusss  
    OP
       281 天前
    有没有老哥会的啊
    xmai
        2
    xmai  
       281 天前
    被 `.nomedia` 过滤 了

    ```
    File[] callRecordFiles = soundRecorderDir.listFiles(new FileFilter() {
    @Override
    public boolean accept(File file) {
    // 排除以 .nomedia 结尾的文件
    return !file.getName().toLowerCase().endsWith(".nomedia");
    }
    });
    ```
    atusss
        3
    atusss  
    OP
       281 天前
    @xmai 不行呢,刚试了。以前 callRecordFiles 还有一个 file,现在过滤了.nomedia ,就直接 callRecordFiles 啥也没有了。
    atusss
        4
    atusss  
    OP
       281 天前
    @xmai 但是/storage/emulated/0/Sounds/CallRecord/ 文件夹里面是有录音文件的。
    xmai
        5
    xmai  
       281 天前
    从 Android 10 ( API 级别 29 )开始,对通话录音文件的访问进一步受到限制,并且不再直接支持通过标准的文件 I/O 接口读取通话录音文件。你可以试试使用 MediaStore API 。
    54lazycat
        7
    54lazycat  
       281 天前
    老哥是不是接了侠客行的外包?
    atusss
        8
    atusss  
    OP
       281 天前
    @dingwen07 感觉不是这样的,我看有这个功能的 APP 没有去选,文件夹内容,授权,而是直接就获取了文件。
    atusss
        9
    atusss  
    OP
       281 天前
    @54lazycat 不是哦,MD 本来我说不可以实现,但是偏偏竞品的就可以,我只能苦哈哈的找办法实现了。
    atusss
        10
    atusss  
    OP
       280 天前
    此贴终结
    我把 targetSdk 降低到了 26 就能正常读取文件了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2184 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:49 · PVG 23:49 · LAX 08:49 · JFK 11:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.