当前位置: 首页 > 知识库问答 >
问题:

应用程序如何在Android6.0(API级别23)的情况下访问USB OTG存储的文件?

闻人和歌
2023-03-14

Android 6.0 Developer Preview(API级别23)可以原生地安装外部可移动USB OTG存储,无需任何额外的应用程序(更多信息请参见:https://www.androidpolice.com/2015/05/28/android-m-feature-spotlight-external-storage-can-be-adopment-as-true-internal-storage-or-accessed-normal-with-no-additial-apps/)。

当用户连接USB OTG存储时,它会出现在系统存储菜单中,并且可以通过内置的文件管理器访问。用户可以使用新的内置文件管理器访问USB OTG外部存储上的所有文件,而不需要root权限。

当我将USB OTG存储连接到Android设备时,它会挂载在/storage/a03e-1df5/mnt/media_rw/a03e-1df5上,但需要根用户权限才能访问此文件夹。

我正在做Android媒体播放器应用程序。

在我的应用程序中,有没有可能以及如何像内置的文件管理器一样访问Android 6.0上的USB OTG存储上的文件,而没有root权限?

附注。我已经在我的应用程序中使用了checkselfpermissionrequestpermission函数,并且我的应用程序已经有了android.permission.read_external_storageandroidpolice.com/2015/07/15/android-m-feature-spotlight-apps-now-need-your-permission-to-read-and-write-to-external-storage/),但是这些权限似乎只影响内部存储(MicroSD),对于USB OTG来说,没有这样的


共有1个答案

全鸿晖
2023-03-14

从Android 6开始,根据USB媒体支持文档,存储访问框架似乎是唯一可用的机制:

在Android 6.0中,任何未被采用的设备都被认为是便携的。[…]第三方应用程序必须通过存储访问框架才能与便携式存储上的文件交互;出于隐私和安全原因,直接访问被明确阻止。

 类似资料:
  • 有了Nexus5,OSM6.0。1,然后在照相机应用程序中选择一张照片并进行“共享”。在目标应用程序中,它从intent和文件路径获取Uri。当新建FileInputStream(新文件(pathToFile))时,它抛出:打开失败:EACCES(权限被拒绝) 这是因为未授予“存储”权限,但不希望要求用户专门授予“存储”权限。是否有其他方法可以在没有“存储”权限的情况下读取文件? 文件路径是这样提

  • 我的Android应用程序允许用户从互联网下载zip文件。有人可以判断是否可以从应用程序本身安装zip文件?无法访问互联网。我一直在寻找机会来做这件事很长一段时间,并且已经不知所措了。 附言:谢谢回复,我开始明白了!我将我的zip文件添加到名称为“my.zip”的“原始”文件夹中,并添加了代码(如下),不幸的是手机上的文件安装没有发生,你能看到我的错误吗? 我在代码中添加了Toast并包含了Dow

  • 安装了jpackage应用程序后,我如何允许用户升级应用程序,而不需要再次运行安装程序?我有哪些选项允许用户升级? 理想的情况是,底层JAR将在运行时被调出,应用程序将在同一进程中重新启动。我想这可能是不可能的?

  • 在我的邮件配置中: 但我的测试电子邮件已启用“访问不太安全的应用程序”。是否有机会向任何类型的电子邮件发送电子邮件?目前,我无法获得服务器电子邮件和他们的配置。我需要创建自己的电子邮件并集成到网站。 我的搜索给了我“两步验证”。如果我启用此功能,系统是否可以自动发送电子邮件?我找不到任何解决办法。我希望有人能帮助我。提前谢谢。

  • 问题内容: 我试图将配置(例如URLs / etc)放入资源文件夹中,以供实用程序类使用。但是,我不想从任何地方的活动中传递上下文。我希望能够通过路径名(似乎使用assess /是为此用途设计的)来访问资源,而无需使用上下文来访问资源。 在这种特殊情况下,我希望单例实例化时在配置中使用某些东西。除了实例化期间的那一次之外,它不需要任何资源。因此,每次调用getInstance()时都必须传递Con