OpenHarmony开发者论坛
标题:
OpenHarmony 资源管理获取raw目录下文件的绝对路径方法
[打印本页]
作者:
leohe
时间:
2024-1-10 10:38
标题:
OpenHarmony 资源管理获取raw目录下文件的绝对路径方法
[md]# 背景
1. OpenHarmony4.0
## 需求
在src/main/resources/rawfile/目录下存有一个 broadcastpause720.h264文件. 在NDK层上需要以二进制的方式访问打开该文件. 首先需要获取该文件的绝对路径
官方提供的接口
```
$rawfile('broadcastpause720.h264')
```
仅能获得一个对象. 无法在APP运行时获取到该文件的绝对路径
## 问题
如何获取APP资源rawfile的绝对路径提供给NDK层访问?
[/md]
作者:
深开鸿_王石
时间:
2024-1-10 16:28
应用的安装路径是:/data/app/el1/bundle/public/<PACKAGENAME>,然后资源路径是里面的entry/resources/rawfile/,有安全要求,所以不能直接访问;
应用访问,接口就是context.resourceManager.getRawFd("test.log"),或context.resourceManager.getRawFileDescriptor("test.log"),
能得到文件fd,通过fd可以操作文件
作者:
mean
时间:
2024-1-10 18:59
包管理子系统不支持按路径读取entry.har中的文件(任意路径都不行)
作者:
leohe
时间:
2024-1-11 15:09
回复
深开鸿_王石
: arkts层和native 均有接口获取fd句柄.
这两个层面上分别调用哪个接口从fd里面读取1024大小的buff?
作者:
深开鸿_王石
时间:
2024-1-11 18:14
回复
leohe
: arkts层可以用fileio,native就用stdio里的方法,read,lseek这样
作者:
jyjy
时间:
2024-2-6 11:29
回复
深开鸿_王石
: 大佬你好 想问一下 native开发 /dev/vendor_storage设备文件要怎么访问?
使用open()接口打开,报错permission denied,应用配置了system_core、hos_system_app权限,用chmod修改了文件读写权限,参考文档使用mount也是没有权限。
还是这个路径需要怎么映射的方式读取?
作者:
深开鸿_王石
时间:
2024-2-6 15:47
回复
jyjy
: selinux的权限关了吗?
作者:
jyjy
时间:
2024-2-6 18:17
回复
深开鸿_王石
: 是这个原因, selinux改成Permissive模式就可以了。
感谢大佬。
作者:
zhikai
时间:
2024-9-12 14:13
回复
深开鸿_王石
: 现在比较尴尬的是类似Seetaface2这种库提供预训练的模型,他提供的接口在使用的过程中我是需要通过路径传参,然后让API去进行调用,但是API里面本身并不会写相关NDK的rawfile访问的方法
作者:
深开鸿_王石
时间:
2024-9-14 16:20
回复
zhikai
: 那就还有个法子,就是把rawfile拷贝到你自己包路径下,然后再通过路径传参
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5