2017-05-10 4 views
1

Kann mir jemand ein kurzes Beispiel zeigen, wie man eine Datei von Android Phone an Google Drive sendet?Android Google Drive Senden/Erstellen von Fiile

Oder erstellen Sie eine neue Datei mit Inhalt und senden Sie an Drive.

Google Beispielcode auf www Website Fehler oder sind von der neuen API aber Beispiel-App mit alten api ..

Google Beispiel:

File fileMetadata = new File(); 
fileMetadata.setTitle("photo.jpg"); 
java.io.File filePath = new java.io.File("files/photo.jpg"); 
FileContent mediaContent = new FileContent("image/jpeg", filePath); 
File file = driveService.files().insert(fileMetadata, mediaContent) 
     .setFields("id") 
     .execute(); 

Aber Methoden wie setTitle() und Einsatz() existiert nicht?

Mein Code:

HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
      JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); 
      mService = new com.google.api.services.drive.Drive.Builder(
        transport, jsonFactory, credential) 
        .setApplicationName("Drive API Android Quickstart") 
        .build(); 

mService.files().create(new File().setName("TITLE").setMimeType("text/csv")).execute(); 

Diese Erstellen der Datei mit dem Namen TITEL und korrekter Mimetype.

Aber wie man normale java.io.File oder wie man Inhalt für drive.model.File ??

Antwort

1

Ihr Snippet ist in der Nähe, aber es gibt ein paar Unterschiede zwischen ihm und Google's example:

File fileMetadata = new File(); 
fileMetadata.setName("config.json"); 
fileMetadata.setParents(Collections.singletonList("appDataFolder")); 
java.io.File filePath = new java.io.File("files/config.json"); 
FileContent mediaContent = new FileContent("application/json", filePath); 
File file = driveService.files().create(fileMetadata, mediaContent) 
    .setFields("id") 
    .execute(); 
  • Verwenden setName statt setTitle
  • Stellen Sie die Eltern der Datei appDataFolder
  • Verwenden driveService.files().create statt von driveService.files().insert
+0

Sie verwenden jedoch nicht getGoogleApiClient() in einem neuen Beispiel https://developers.google.com/drive/v3/web/quickstart/android Oder irre ich mich? Ich erinnere mich an getGoogleApiClient() in alten API, wollte jetzt aber neue verwenden. – Esperanz0

+0

Es sieht so aus, als ob Sie Recht haben, die API hat sich geändert. Ich werde meine Antwort aktualisieren. –

+0

Fast. filePath ist in meinem Fall nicht vorhanden/erstellt. – Esperanz0

0

Installieren Sie die Google Drive App auf Ihrem Gerät. Nun, ich denke du hast es schon.

Verwenden Sie danach Intent.ACTION_OPEN_DOCUMENT, damit der Benutzer eine Datei aus dem Laufwerk auswählen kann, die Sie dann lesen und schreiben können.

Oder verwenden Sie Intent.ACTION_CREATE_DOCUMENT, damit der Benutzer einen Dateinamen auf dem Laufwerk erstellen kann, auf dem Sie Ihre Datei kopieren können.

+0

Benutzer wird nicht mit diesem interagieren. Zum Beispiel schreibt der Benutzer nur einige Informationen in EditTexts, dann muss ich diese Informationen vervollständigen und diese Datei an Google Drive senden. – Esperanz0

Verwandte Themen