2014-02-10 12 views
7

Ich habe diesen Code, um eine Datei in meine App hochzuladen, und wenn die Datei mit einem Dateimanager oder Dropbox oder irgendetwas anderes geöffnet wird, ist der zurückgegebene Pfad korrekt und ich kann Greifen Sie darauf zu, ich habe nur Probleme mit Google Drive, es gibt einen Pfad zurück, der mit "exposed_content" beginnt und ich kann es nicht "decodieren", ich habe gesucht und keinen Weg gefunden, irgendjemand hat eine Idee?Android Get Uri Pfad zu Datei von Google Drive

if (resultCode == Activity.RESULT_OK) { 
      if ((data != null) && (data.getData() != null)) { 
       final Uri filePath; 
       if (data.getDataString().startsWith("content")) { 
        filePath = getRealPathFromURI(getApplicationContext(), data.getData()); 
       } else { 
        filePath = data.getData(); 
       } 
       // TODO bug with google drive 
       if (filePath.getLastPathSegment() != null) { 
        tvSelectedFile.setText("File selected: " + filePath.getLastPathSegment()); 

       } else { 
        tvSelectedFile.setText("File can not be accessed, please try another way"); 
       } 

      } 
} 

Antwort

-1

Verwenden Sie den beigefügten Code ... von onActivity Ergebnis wird Sie Inhalt uri bekommen ... passieren diese uri dem Verfahren gegeben ...

public static String getGDriveDataColumn(Context context, Uri uri, String selection, 
              String[] selectionArgs) { 
    Cursor cursor = null; 
    final String column = "_display_name"; 
    final String[] projection = { 
     column 
    }; 

    try { 
     cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); 
     if (cursor != null && cursor.moveToFirst()) { 
      final int column_index = cursor.getColumnIndexOrThrow(column); 
      return cursor.getString(column_index); 
     } 
    } finally { 
     if (cursor != null) 
      cursor.close(); 
    } 
      return null;  

} 
+1

was soll ich als Auswahl passieren und selectionArgs? Ich habe versucht, einen Nullwert zu übergeben, aber ich bekomme nur den Dateinamen, keinen Pfad zu der Datei. – jcesarmobile

+0

Ich würde auch gerne wissen, was @jcesarmobile gefragt hat. Es ist nicht klar aus der Antwort. – Nom1fan

+1

Ja, ich habe diesen Code getestet. Es gibt nur den Dateinamen an – FaisalAhmed

Verwandte Themen