gpt4 book ai didi

android - android 上的 openalpr - 配置和运行时数据的路径

转载 作者:太空狗 更新时间:2023-10-29 15:28:15 27 4
gpt4 key购买 nike

我想在我的 android 项目中使用开放式 alpr(自动车牌识别)库。我成功地编译了所有内容,现在是时候在应用程序中使用 open alpr 但是......

要正确创建 Alpr 类对象,我必须提供配置文件的路径和 runtime_data 文件夹的路径,其中包含打开 alpr(ocr 和训练数据)所需的一些强制文件。

我试过类似的方法:

Alpr alpr = new Alpr("eu", "android_assets/alpr.conf", "android_assets/runtime_data");

但是 Alpr.isLoaded() 返回 false,这意味着没有找到配置或 runtime_data。

项目中 Assets 文件夹的路径是:src/main/assets

谁能给我解释一下“runtime_data”目录和“alpr.conf”的路径 应该让 open alpr 可见吗?

提前致谢。

最佳答案

我不熟悉具体的库,但在较新的 Android 设备(Android 6 及更高版本)上,您不能依赖位于 /data/data/your.package.name 下的应用程序文件>

实际的库名称仍然包括您应用程序的包名称,但在 base64 中还附加了一些标识符。格式。此标识符在每次安装时都是唯一的,如果您在同一台设备上卸载并重新安装该应用程序,它会发生变化。

因此,如果您的库需要使用带有其他文件路径的配置文件,则有 2 个选项:

  1. 正确的做法:
    使用 Context.getFilesDir() 获取应用程序文件夹的真实地址.
    使用 AssetManager 从设备上 APK 的 assets 文件夹解压文件.
    使用 getFilesDir() 返回的路径以编程方式重写您的配置文件。

  2. “hacky”但更简单的方法:使用公共(public)存储空间解压您的文件。
    您需要添加 WRITE_EXTERNAL_STORAGE您的应用程序权限,并将 Assets 文件解压缩到外部存储。
    为了向后兼容,这将在大多数 Android 设备的 /sdcard 文件夹下可用,即使是最新的 Android 版本也是如此。

不推荐第二种方法,因为直接使用 /sdcard 已被 Google 弃用并强烈反对。
此外,并非所有 Android 设备都具有指向其公共(public)存储的 /sdcard 链接,但这是避免在安装后动态编辑配置文件的唯一方法。

关于android - android 上的 openalpr - 配置和运行时数据的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com