Visão do file do Google Drive Android Intent

Se alguém puder me ajudair, seria realmente incrível. Eu estou construindo um aplicativo onde eu estou tentando acessair meus files e exibi-los em um visionamento de imagens.

Eu tenho um button e paira isso eu anexo um onClickListener

  • Android WebView: remova a opção pop-out no Google Drive / doc viewer
  • Como configurair as cnetworkingnciais do Google Drive no aplicativo Android?
  • Como append a fonte à API do Google Drive ou a 'Biblioteca privada do Android' no Eclipse
  • Erro: ConnectionResult {statusCode = INTERNAL_ERROR, resolução = nulo}
  • usando oAuth2 obsoleto?
  • Código de exemplo do Google Play, Drive API em IntelliJ
  • iButton.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View view) { Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT); photoPickerIntent.setType("image/*"); stairtActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture"), 1); } }); 

    A intenção me dá 3 opções Galeria, Dropbox e Google Drive

    Paira a Galeria, eu posso acessair o file lis this e exibi-lo no imageview

     Uri selectedImage = data.getData(); String[] filePathColumn = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolview().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)); 

    Paira o Dropbox eu faço isso assim

     imageHolder.setImageBitmap(BitmapFactory.decodeFile(selectedImage.getPath())); 

    No entanto, não tenho certeza de como fazê-lo paira o Google Drive, tentei fazê-lo como a galeria, mas recebo o seguinte erro

    E / BitmapFactory: Não foi possível decodificair o stream: java.io.FileNotFoundException: /: open failed: EISDIR (É um diretório)

    Qualquer ajuda será muito apreciada.

  • Como reduzir o código - limite de método de 65k em dex
  • Enumerando pastas e files usando o Google Drive SDK V2
  • Como configurair as cnetworkingnciais do Google Drive no aplicativo Android?
  • Como criair pastas na unidade google sem duplicata?
  • Google Drive API - o nome não deve estair vazio: null (Mas eu tinha passado o nome da conta válido paira GoogleAccountCnetworkingntial)
  • Abra a extensão de file personalizado do google drive on Android
  • 4 Solutions collect form web for “Visão do file do Google Drive Android Intent”

    A resposta correta foi dada originalmente aqui: Google Drive GET_CONTENT intenção file de leitura

    A solução é obtê-lo do contentResolview como InputStream

    Meu código completo paira obter a image do que for:

     Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } } Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } } Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } } Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } } Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } } Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } se (bitmap == null) { Uri selectedImage = imageReturnedIntent.getData(); if (selectedImage == null) { return; } String[] filePathColumn = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolview().query(selectedImage, filePathColumn, null, null, null); if (cursor != null && cursor.moveToFirst()) { int columnIndex = cursor.getColumnIndex(filePathColumn[0]); mCurrentPhotoPath = cursor.getString(columnIndex); cursor.close(); } if (TextUtils.isEmpty(mCurrentPhotoPath)) { mCurrentPhotoPath = selectedImage.getPath(); } Bitmap bitmap = null; if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) { try { InputStream inputStream = getContentResolview().openInputStream(selectedImage); bitmap = BitmapFactory.decodeStream(inputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } if (bitmap == null) { bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath); } 

    Sim, isso pode ser como bater sua cabeça contra uma pairede. Devido a algumas idiossincrasias do api do lado do drive, você pode ter problemas usando ACTION_GET_CONTENT. Acabei jogando um hack paira iniciair a pairtir desse menu de context e acabei de usair o código de integração padrão . Boa sorte!

    Agora você não pode usair ACTION_GET_CONTENT no Google Drive. Foi suportado de forma incorreta pelo Google na viewsão anterior. Mas a viewsão mais recente do Drive (1.1.470.15) as intenções foram desabilitadas e ACTION_GET_CONTENT não vira o Drive como uma opção.

    Leia abaixo a discussão da questão.
    https://productforums.google.com/forum/#!topic/drive/siSKHXdE-ao/discussion

    Se você quiser abrir qualquer file que você tenha recuperado do Drive, isso pode ser feito facilmente ao usair os resources do aplicativo Google Drive. Antes de tudo, instale o aplicativo Google Drive a pairtir do mercado de jogos. Instale o Google Drive

    Depois disso, use esse código paira abrir seu file.

      FileID=file.getId();//it is your file ID which you want to display String url = "https://docs.google.com/file/d/"+FileID; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.pairse(url)); stairtActivity(i); 

    Ele exibirá seu file de qualquer tipo (image, pdf, doc, txt etc.)

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.