gpt4 book ai didi

android - AndroidTest 拒绝访问外部存储的权限

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:06 29 4
gpt4 key购买 nike

在开始解释我的问题之前,我必须说明我是 Android 开发的新手。

我正在尝试为 Android 编写一个程序,它使用 OpenCV 的 Java API 进行一些数据处理。我正在为实现算法的类开发单元测试,这些类还与任何 Activity 无关。换句话说,我只想在处理 Activity 之前测试方法的功能。

因为我需要访问 OpenCV 库,所以我在 Android Studio 的 androidTest 下编写了我的单元测试。程序中需要读取的包含数据的文件复制到/sdcard/DIR和/storage/emulated/0/DIR。我已将以下权限添加到 AndroidManifest.xml 以授予对外部存储的访问权限。

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

但是,当我尝试从外部存储读取文件时,我得到打开失败:EACCES(权限被拒绝)。请注意,我将 Environment.getExternalStorageDirectory().getAbsolutePath() 返回的路径与数据文件的名称连接起来,然后使用 FileInputStream 读取文件的内容。

我看到过类似的问题和答案,提到应该在运行时为 23 以上的 API 授予访问权限。但是因为我的方法没有任何 Activity ,所以我想我无法在运行时请求权限。

  1. 是否有任何其他目录可以用来放置不需要这些权限的数据文件?我认为 assets 作为一个选项,但我假设 Assets 被放入最终的 apk 中,如果我需要为不同的数据更改文件,我必须每次都创建一个新的 apk。

  2. 我应该如何授予对/sdcard 的访问权限,而无需在运行时向用户请求权限的任何 Activity ?

  3. 我可以通过在我的 linux 机器上安装 OpenCV 库来进行本地测试而不是 androidTest 吗?

最佳答案

抱歉,android 不提供这种类型的访问权限您将需要创建一个 Activity 来启动应用程序

我认为如果你使用的是棉花糖设备,那么你将需要在运行时请求读取和写入外部存储的权限

您可以引用以下链接 https://developer.android.com/training/permissions/requesting.html

关于android - AndroidTest 拒绝访问外部存储的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43421226/

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