2016-10-23 3 views
0

Ich möchte Metadaten aus Dateien oder Ordnern in Google Drive auf Android-Gerät abrufen, um DeviceID oder ResourceID zu erhalten, damit ich die Datei in den lokalen Speicher des Geräts herunterladen konnte. Das Problem mit meiner Anwendung ist, dass die Anwendung keine Benutzerinteraktion benötigt. Das bedeutet, dass Sie der Anwendung nur den Namen mitteilen, damit die App versucht, die Dateien in jedem Verzeichnis zu finden und herunterzuladen. Ich habe versucht, query (link) folgen Quickstart-Tutorial verwenden, aber es gibt mir nur den Namen der vorhandenen Datei zurück.Wie bekomme ich Metadaten aus Dateien oder Ordnern in Google Drive auf Android?

Bitte beachten Sie erneut: Der Benutzer muss nicht Dateien oder Ordner auswählen, nur sagen, der Name der Datei ist genug. Und die Datei oder der Ordner wird auch von der Anwendung erstellt.

+0

Enthalten Metadaten einer Datei eine deviceId? Bitte erkläre. – greenapps

+0

Erläutern Sie auch, warum Sie eine Geräte-ID zum Herunterladen einer Datei benötigen. – greenapps

+0

@greenapps, ich bin mir nicht so sicher. Ich habe Informationen in https://developers.google.com/drive/android/metadata gelesen und sie sagten, dass sie alle Details zu einer Datei oder einem Ordner enthalten. Bedeutet das nicht, dass es auch DeviceID enthält? Warum brauche ich DeviceID, um eine Datei herunterzuladen? Weil ich sah viele Beispiele gezeigt, dass, wenn wir Datei von Google Drive abrufen müssen, müssen wir DeviceID oder ResourceID haben.Ich bin mir meist nicht sicher über all das, weil ich dort nicht genug Beispiele finden konnte und meistens sind sie zu schwer zu folgen. –

Antwort

0

Wie bekomme ich Metadaten aus Dateien oder Ordnern in Google Drive auf Android?

Nach Working with File and Folder Metadata:

Metadaten im Metadaten Klasse gekapselt und enthält alle Informationen über eine Datei oder einen Ordner mit dem Titel, der MIME-Typ, und ob die Datei bearbeitet werden kann, spielte oder im Papierkorb. Die Metadaten werden für eine DriveResource abgerufen, indem die DriveResource.getMetadata-Methode aufgerufen wird.

Hier ist ein Ausschnitt aus der Dokumentation:

/** 
* An activity to retrieve the metadata of a file. 
*/ 
public class RetrieveMetadataActivity extends BaseDemoActivity implements 
     ResultCallback { 

    @Override 
    public void onConnected(Bundle connectionHint) { 
     DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(), 
       DriveId.decodeFromString("0ByfSjdPVs9MZcEE3bzJCc3NsRkE")); 
     file.getMetadata(getGoogleApiClient()).setResultCallback(metadataRetrievedCallback); 

    } 

    ResultCallback<MetadataResult> metadataRetrievedCallback = new 
      ResultCallback<MetadataResult>() { 
     @Override 
     public void onResult(MetadataResult result) { 
      if (!result.getStatus().isSuccess()) { 
       showMessage("Problem while trying to fetch metadata"); 
       return; 
      } 
      Metadata metadata = result.getMetadata(); 
      showMessage("Metadata succesfully fetched. Title: " + metadata.getTitle()); 
     } 
    } 
} 

Wie Ressourcen-ID zu bekommen?

Noch immer auf der Android-API für Drive, hat DriveID Klasse eine Methode getResourceId(), die die Ressourcen-ID zurückgibt.

Wie bekomme ich die Geräte-ID?

Ich glaube nicht, dass Sie die Android Drive API verwenden können, um dies zu bekommen. Es scheint, dass Sie dies für fileID verwechselt haben, die Sie zu Download Files verwenden werden.

Finde fileID manuell in Google Drive:

Wenn es eine Kalkulationstabelle Datei

https://docs.google.com/spreadsheets/d/1pE9ejBTBH38oCoOHU2O42qU6vzxagAJ9J1237dYB1Eg/edit#gid=0 

fileID -> 1pE9ejBTBH38oCoOHU2O42qU6vzxagAJ9J1237dYB1Eg 

ist Wenn es eine doc-Datei ist:

https://docs.google.com/document/d/1Fh6s7an-7I6VuDBxZKcxcaU3cG1XpSryHQXGnznWlns/edit 

fileID -> 1Fh6s7an-7I6VuDBxZKcxcaU3cG1XpSryHQXGnznWlns 

Sie erhalten das Muster. Es ist eine Zeichenfolge aus alphanumerischen Zeichen in der URL.

+0

Hallo @noogui! Können Sie mir den folgenden Code erklären? Meistens verstehe ich nicht wo ich diese Zeichenfolge "0ByfSjdPVs9MZcEE3bzJCc3NsRkE" bekommen kann. Erkennt es eine Datei in Google Drive? Wenn ja, ist jede Datei gleich? Und wie kann ich diese Saite auch bekommen? DriveFile-Datei = Drive.DriveApi.getFile (getGoogleApiClient(), DriveId..decodeFromString ("0ByfSjdPVs9MZcEE3bzJCc3NsRkE")); –

+0

das ist eine Datei-ID. Jede Datei in Google Drive hat eine eindeutige Datei-ID – noogui

+0

Also wissen Sie, wie kann ich diese Datei-ID aus jeder Datei nach Dateiname erhalten? –

Verwandte Themen