我想创建一个Android活动,显示用户的GoogleDrive帐户的文件结构。简单来说,当用户点击按钮(例如 Google云端硬盘中的文件)时,应该将用户定向到GoogleDrive主页,即显示文件和文件夹的页面。用户可以访问文件,创建新文件,删除现有文件等。我正在使用存在的代码here来完成此项目。我需要帮助创建此活动。
答案 0 :(得分:0)
您不能使用GDAA(您提及的演示),因为它只支持FILE范围。这意味着它只会看到Android App创建的文件/文件夹。对于您的情况,请使用带驱动范围的REST api。
使用REST api,找到id为“root”的文件夹,然后迭代(递归)向下收集文件的文件夹树层次结构。您可以查看此demo,特别是方法“testTree”
您不能直接使用它,因为它不使用递归来迭代层次结构(我的树结构是预先定义的,您将是未知的)。
所以你必须:
另一种(更高性能)APPROACH:
由于Google Drive不是设计层次结构(它只是假装),因此还有另一种可能解决此问题的方法(您可以在playground here - 页面底部进行测试。)< / p>
一次性列出云端硬盘中的所有文件(仅过滤您需要的字段),并从匹配的文件/文件夹“id”和“parentIds”中删除树结构。以下是REST操场列表的典型结果:
GET https://www.googleapis.com/drive/v2/files?fields=items(id%2Cparents%2Fid)&key={YOUR_API_KEY}
200 OK
{
"items": [
{
"id": "10JyzCXw7GcmEQPcxGHtlP4yAQ6tPXtK8nmrlVCThjL8",
"parents": [
{
"id": "0B1mQUW2aFJfdbHlVQWdwOVhWMG8"
}
]
},
{
"id": "0B1mQUW2aFJfdYWZTcmRMVWlReGc",
"parents": [
{
"id": "0B1mQUW2aFJfdVlJYYVJxU3R1dFU"
}
]
},
这样,您只需要一个REST'文件()。list()'call和'String.equals()'来解决您的问题。假设,文件夹也有已知的MIME类型,逻辑应该很容易。
祝你好运