Wenn jemand helfen kann, wäre ich wirklich genial. Ich baue eine App, in der ich versuche, auf meine Dateien zuzugreifen und sie in einer Bildansicht anzuzeigen.Datei Ansicht von Google Drive Android Intent
Ich habe einen Knopf und dem messe ich ein OnClickListener
iButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture"), 1);
}
});
Die Absicht gibt mir drei Optionen Galerie, Dropbox und Google Drive
Für die Galerie ich in der Lage bin, die Datei lis für den Zugriff auf diese und zeigt es in der Imageview
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
imageHolder.setImageBitmap(BitmapFactory.decodeFile(picturePath));
Für Dropbox ich mache es wie dieses
imageHolder.setImageBitmap(BitmapFactory.decodeFile(selectedImage.getPath()));
Allerdings bin ich nicht sicher, wie es für Google-Laufwerk zu tun, habe ich versucht, es wie die Galerie zu tun, aber ich bekomme die folgenden Fehler
E/BitmapFactory: Nicht imstande, Strom zu entschlüsseln: java.io.FileNotFoundException: /: Öffnen fehlgeschlagen: EISDIR (Ist ein Verzeichnis)
Jede Hilfe wäre sehr willkommen.
Was Anzeige entdeckte ich so weit: die Uri zurück im Format lautet: 'Inhalt://com.google.android.apps.docs.files/exposed_content/ [base64-codierte-bytes] '. '[base64-encoded-bytes]' ist in Wirklichkeit eine umgekehrte Zeile-Feed-Semikolon-getrennte URL-codierte Zeichenfolge, z. '123 ...% 3D% 3D% 0A% 3B456 ...' sollte in '456 ... 123 definiert werden ... ==' Base64-Decodierung '456 ... 123 ... ==' ergibt 64 Bytes Daten, aber ich kann nicht verstehen, was diese Bytes sind.Hier ist ein Beispiel für die resultierenden 64-Bytes, die ich bekam: http://cl.ly/3Y2C1s0v3O0Q Und es macht keinen Sinn in HEX: http://goo.gl/7WV9K –
Haben Sie eine der offiziellen Dokumentation versucht ? https://developers.google.com/drive/integrate-android-ui – Darwind