- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从最终会从云端硬盘下载音轨的 Android 应用程序连接到 Google 云端硬盘。我无法创建用于身份验证的/token/目录。
我已经拆分了创建 GoogleAuthorizationCodeFlow
的过程,以显示该过程在失败之前进行了多远。我还尝试预先创建/token/目录,但也失败了。
这是相关代码。因为我使用的是内部存储,所以 list 文件中没有请求任何权限。
@Override
public void onReceive(Context context, Intent intent) {
Log.i("LOGLEARN", "Starting AlarmReceiver");
Drive service;
try {
HttpTransport HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport();
service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName("Morning Learning")
.build();
FileList result = service.files().list()
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
List<File> files = result.getFiles();
if (files == null || files.isEmpty()) {
Log.i(DEBUG,"No files found.");
} else {
Log.i(DEBUG, "Files:");
for (File file : files) {
Log.i(DEBUG, "%s (%s) - " + file.getName() + file.getId());
}
}
} catch (Exception exception) {
// Handle Exception here
Log.i(DEBUG, "Exception: " + exception.toString());
}
}
private static Credential getCredentials(final HttpTransport HTTP_TRANSPORT) throws IOException {
String DEBUG = "LOGLEARN";
// Load client secrets.
InputStream in = AlarmReceiver.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
if (in == null) {
throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
}
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
// Build flow and trigger user authorization request.
java.io.File tokenFolder = new java.io.File(Environment.getDataDirectory() +
java.io.File.separator + TOKENS_DIRECTORY_PATH);
if (!tokenFolder.exists()) {
Log.i(DEBUG, "Token Folder does not exist " + tokenFolder.toString());
tokenFolder.mkdirs();
}
if (!tokenFolder.exists()) {
Log.i(DEBUG, "Token Folder still does not exist " + tokenFolder.toString());
} else {
Log.i(DEBUG, "Token Folder now exists " + tokenFolder.toString());
}
GoogleAuthorizationCodeFlow.Builder build = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES);
Log.i(DEBUG, "Checkpoint 1");
build.setDataStoreFactory(new FileDataStoreFactory(tokenFolder));
Log.i(DEBUG, "Checkpoint 2");
build.setAccessType("offline");
Log.i(DEBUG, "Checkpoint 3");
GoogleAuthorizationCodeFlow flow = build.build();
Log.i(DEBUG, "Checkpoint end");
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}
我希望将某种文件列表写入 LogCat,但我却得到以下内容:
I/LOGLEARN: Starting AlarmReceiver
I/LOGLEARN: Token Folder does not exist /data/tokens
I/LOGLEARN: Token Folder still does not exist /data/tokens
I/LOGLEARN: Checkpoint 1
I/LOGLEARN: Exception: java.io.IOException: unable to create directory: /data/tokens
发生了两件我不明白的奇怪事情。
在这行 build.setDataStoreFactory(new FileDataStoreFactory(tokenFolder));
tokenFolder.mkdirs();
没有按预期创建目录,也没有抛出异常。
另外,我不明白类名 GoogleAuthorizationCodeFlow.Builder
的术语 - 这只是一个带有句号的类名,还是对内部类或其他类的引用?
最佳答案
我希望您最终能找到这个“创建/token/目录” 问题的答案。
如果情况更糟,您只需要访问您知道其 Google 云端硬盘路径的 MP3 文件...
变成(通过使用 String
函数编辑):
https://drive.google.com/uc?authuser=0&id=XXXXX&export=download
仅将 XXXXX
替换为您的文件 ID。现在将下载 MP3 字节,因此要么读入 bytearray
,要么在 MP3 解码器/播放器中用作 URL。
关于android - 无法为 Google 云端硬盘创建 token 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55793520/
我创建了一个具有高级非托管磁盘配置的 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 文件。但是当我打开
我是一名优秀的程序员,十分优秀!