2014-08-28 185 views
2

我已經使用Google Drive Android API創建了一個文件來驅動root。如何獲取此文件ID以使用Google客戶端庫共享?如何獲取Google Drive文件ID

獲得DriveFileResult在ResultCallback<DriveFileResult>回調返回Null:

String fileId = result.getDriveFile().getDriveId().getResourceId(); 

回答

3

回調是在本地創建的文件。當文件同步到服務器時,DriveId將只有一個resourceId。在此之前,getResourceId將返回null。

https://developer.android.com/reference/com/google/android/gms/drive/DriveId.html#getResourceId()

使用CompletionEvents到同步時發生了服務器通知。然後調用getResourceId()應該提供你所期望的。

+0

謝謝,但你能建議如何做這個同步? – 2014-08-29 11:02:11

+0

聽着,我的文件是在Drive中創建的,我看到了它。這是否意味着文件已經同步? – 2014-08-29 11:37:04

+2

你不需要做任何事情來同步,它會自動發生。您可以偵聽更改事件以瞭解資源更改的時間,包括添加resourceId:https://developers.google.com/drive/android/events – 2014-08-29 15:14:32

0

此代碼可能有助於識別存在於谷歌驅動器中的文件的ID。

public static void main(String[] args) throws IOException { 
    // Build a new authorized API client service. 
    Drive service = getDriveService(); 

    // Print the names and IDs for up to 10 files. 
    FileList result = service.files().list() 
     .setMaxResults(10) 
     .execute(); 
    List<File> files = result.getItems(); 
    if (files == null || files.size() == 0) { 
     System.out.println("No files found."); 
    } else { 
     System.out.println("Files:"); 
     for (File file : files) { 
      System.out.printf("%s (%s)\n", file.getTitle(), file.getId()); 
     } 
    } 
} 
+0

不幸的是,您正在將[REST](https://developers.google.com/drive/web/about-sdk)Api與[GDAA](https://developers.google.com/drive/android/介紹)。不是一個好主意,已經完全解答[這裏已經](http://stackoverflow.com/questions/22874657/unpredictable-result-of-driveid-getresourceid-in-google-drive-android-api/31553269#31553269 ) – seanpj 2015-08-28 13:29:50

相關問題