我正在開發一個Android項目,我正在嘗試使用Google Drive API,並且我已經獲得了大部分它工作,但我在如何執行下載時遇到問題。如何獲取文件ID,以便我可以從Android上的Google Drive API執行文件下載
我無法找到任何地方我如何獲取文件ID,以便我可以執行下載。爲了測試,我檢索了我的驅動器帳戶中的所有文件,並將它們添加到列表數組中,然後獲得列表中第一個文件的ID。
然後我將文件ID複製到下載文件的命令中,並且這個工作成功,但我不知道如何獲得我想要下載的特定文件的文件ID。
下面是我用來下載文件的代碼。
private void downloadFile()
{
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try
{
com.google.api.services.drive.model.File file = service.files().get("0B-Iak7O9SfIpYk9zTjZvY2xreVU").execute();
//FileList file = service.files().list().execute();
//List<com.google.api.services.drive.model.File> fileList = file.getItems();
//com.google.api.services.drive.model.File fileItem = fileList.get(0);
//Log.d("FileID" , fileItem.getId());
//Log.d("Count", "Retreived file list");
if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0)
{
HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl())).execute();
InputStream inputStream = resp.getContent();
writeToFile(inputStream);
}
}
catch (IOException e)
{
Log.e("WriteToFile", e.toString());
e.printStackTrace();
}
}
});
thread.start();
}
0B-Iak7O9SfIpYk9zTjZvY2xreVU
是我下載的文件時,我做了一個列表,選擇的第一個文件,我檢索到的文件ID,但我怎麼能說我想下載,File_1並獲得其ID來話通這個給service.get()。execute函數。
基本上我的最終目標是在我的應用程序中,我將一個XML文件上傳到Google Drive,然後再下載文件。它只會是一個文件,並且將始終具有相同的名稱。我是否立即着手或者有更好的方法來實現我正在嘗試做的事情。
我希望這是有道理的,任何幫助將不勝感激。
感謝
感謝您的幫助,這似乎是很多工作,告訴android獲取所有文件的列表,然後遍歷所有文件,找到我想要的文件,以便我可以獲得ID。期望只提供一個文件名,並檢索該ID。謝謝,雖然我會試試 – Boardy 2013-02-25 13:33:06
你實際上並沒有告訴android來做它,而是谷歌的服務器。通過這種方式,他們的服務器正在完成您的工作(從(可能很長的)文件列表中篩選正確的文件)。另外,通過網絡傳輸的數據更少。 – stan0 2013-02-25 13:42:35
是的,我看到你的觀點,只是看起來很慢,很長時間囉嗦,當我列表找到文件ID是爲我的測試,在問題中提到它花了幾秒鐘完成,我不是那麼過分我的雲端硬盤帳戶中有大量文件 – Boardy 2013-02-25 18:22:57