安卓绝对路径获取 raw 文件夹的绝对路径
时间: 2024-09-30 17:10:00 浏览: 40
android实现raw文件夹导入数据库代码
在Android中,获取`raw`文件夹(通常用于存放资源文件,如OpenCV的Haar级联文件)的绝对路径,需要先创建一个`Uri`实例,然后通过`getAbsolutePath()`方法获取。以下是获取`raw`文件夹下`haarcascade_frontalface_alt.xml`文件的绝对路径的方式:
```java
Uri resourceUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.haarcascade_frontalface_alt);
String absolutePath = context.getAssets().getAssetFilePath(resourceUri.toString());
```
这里:
- `getPackageName()`返回当前Activity或Context所在的包名。
- `R.raw.haarcascade_frontalface_alt`是一个常量,代表资源ID,对应于`res/raw`目录下的`haarcascade_frontalface_alt.xml`文件。
- `context.getAssets().getAssetFilePath()`会返回指定资源文件的绝对路径。
请注意,这种方式适用于在非UI线程(例如服务、BroadcastReceiver等)获取资源路径,如果你在主线程使用,可能会因为阻塞UI导致ANR异常,所以在获取路径时要考虑线程安全。
阅读全文