- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我的应用程序中,用户可以导入声音、视频、图像和其他文件。导入使用标准Intents完成,结果交给OnActivityResult
我在尝试从我的 4.2.2 平板电脑上的 Google Drive 导入文件时遇到安全异常,来自其他来源(例如 Dropbox、Onedrive、Gallery 等)的文件都工作正常。从云端硬盘导入在我的 4.4 平板电脑上运行良好。
Intent 代码如下所示:
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, getString(R.string.title_dialog_selectphoto)), SELECT_PICTURE_REQUEST);
然后在我的 importPhotoFromUri(uri)
方法中,我尝试将 uri 作为 inputStream 打开:
...
InputStream is;
try {
is = getContentResolver().openInputStream(uri);
....
此时我得到一个安全异常:
java.lang.SecurityException: Permission Denial: opening provider
com.google.android.apps.docs.sync.filemanager.FileProvider
from ProcessRecord{216d9060 18832:com.app.app/u0a10153}
(pid=18832, uid=10153) that is not exported from uid 10179
我发现一些帖子似乎提到了不久前的类似问题:
Google Drive + ACTION_GET_CONTENT
File View from Google Drive Android Intent
https://productforums.google.com/forum/#!topic/drive/siSKHXdE-ao/discussion
但是这些似乎都没有解决方案,除了我自己使用他们的 API 重新实现 Google Drive Integration 之外。不过,我宁愿避免这种情况并保持简单的用户体验。
从我的 Google Analytics 中的异常跟踪来看,这个问题似乎主要影响运行 4.2.2 设备的用户,我只看到其他 Android 版本的 3 个安全异常。在 5 月 9 日(2014 年)之前,我几乎没有看到任何安全异常(exception)情况,这也是用户 igorcard 就此答案发表评论询问相同异常(exception)情况的日期: https://stackoverflow.com/a/18298298/2214992
我的 4.2.2 设备上的 Google 云端硬盘应用程序的最后一次更新是在 5 月 8 日
我也已经能够在其他应用程序中观察到同样的问题,通过尝试从我的云端硬盘加载图像,而不仅仅是在我自己的应用程序中。
那么我的问题是,我能否以另一种方式实现驱动器集成,而不会显着改变用户体验,或者我是否只能处理异常并提出一个道歉的警报对话框?此外,这是最近对云端硬盘应用程序的更新打破的,还是云端硬盘更新的时间和我的分析中出现此异常只是巧合?
最佳答案
我遇到了同样的问题。抛出异常是因为在 Google 驱动器 list 中存在用于管理获取内容 Intent 的 export false。使用它是不可靠的。最后,我使用了 Google Drive API,您可以详细查看 newOpenFileActivityBuilder()
方法示例 docs
关于android - Google 云端硬盘和 ACTION_GET_CONTENT 的安全异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23995248/
我创建了一个具有高级非托管磁盘配置的 Azure RM VM。我有 1 个 127GB 的操作系统磁盘和一个大小为 56GB 的临时磁盘。我的操作系统磁盘还包含 SQL Server 和 ShareP
我正在开发一个目录树比较工具,它可以跨多台计算机工作,通过 TCP 与其他实例通信。 该工具运行良好,但到目前为止一直依赖于可由用户更改的驱动器号和标签。可移动驱动器是另一个问题。 我想通过某种唯一的
我正在使用硬盘 ID 为我的软件生成许可证 key 。在我的机器中,我得到 15 个字符长度的 ID。所有制造商的硬盘 ID 的这个长度是恒定的还是在它们之间变化? 是否有任何公认的方法来解释硬盘 I
本文实例讲述了java实现获取cpu、内存、硬盘、网络等信息的方法。分享给大家供大家参考,具体如下: 1. 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包
我正在探索将 Aerospike 作为键值数据库,并将数据存储在磁盘上以确保安全。请确认,我理解正确: 如果在命名空间配置中我设置: 存储引擎设备 内存大小4G 文件/opt/aerospike/da
看着海藻,想换minio。主要原因 - 海藻可以很容易地用任意数量的节点/磁盘扩大。 但是对我的基础设施有几个问题。现在我有 2 个节点,每个节点有 100 个硬盘(HPE CL5800),它们被包含
我目前正在编写一个 CUDA 应用程序,并且遇到了一些“喂养野兽”的 IO 问题。 我想知道是否有任何方法可以直接从 RAID Controller 或 NIC 读取数据并将该数据直接发送到 GPU。
如何衡量文件(硬盘)I/O 的特性?例如,在具有硬盘(速度 X)和 cpu i7(或任何数量的内核)和 Y 数量的 ram(使用 Z Hz BIOS)的机器上(在 Windows 操作系统上): 可以
就像标题一样,我在裸机主机上安装了 RancherOS 并且想要 动态处理外部 USB 硬盘的添加/移除。它应该可以作为其他容器的绑定(bind)挂载访问。 最佳答案 你可以这样做: # udev_c
我想实现以下目标。 这样做的目的是让用户能够从他/她的硬盘驱动器中选择一个文件。 而没有上传的原因当然是传输成本和存储配额。没有理由保存文件。 这可能吗? 最佳答案 可以播放本地视频文件。 当
我想实现以下目标。 这样做的目的是让用户能够从他/她的硬盘驱动器中选择一个文件。 而没有上传的原因当然是传输成本和存储配额。没有理由保存文件。 这可能吗? 最佳答案 可以播放本地视频文件。 当
对于这些实例,在 C++ 运行时,有人可以大致说明什么是什么(硬盘、RAM、堆栈或堆): 局部/全局变量 类、方法和函数 指针 对象 堆栈/堆是否都位于物理 RAM 中? 如果有人可以在答案中包含硬件
我是 Synology 的新手。我想要访问我的 Synology NAS 驱动器。我遵循 Synology_Download_Station_Official_API。 我阅读了基本工作示例以获取 A
我想知道Linux(特别是树莓派)是否可以实现将我的有线电视接收器连接到我的树莓派(主/从?)有线电视接收器认为树莓派是硬盘但同时允许网络中的客户端获取录制的电影(当然不是正在录制的电影) 我猜 WD
由于我在本地主机上构建了许多虚拟网络,并且 htdocs 文件夹中的数据每天都在增加。 我想将 htdocs 文件夹移动到外部硬盘,可以这样做吗? 我尝试编辑 httpd.conf 文件。但是当我打开
我是一名优秀的程序员,十分优秀!