2014-03-27 25 views
3

我已經在谷歌drive.and應用程序文件夾中創建一個文件,我想讀取我創建的文件。我已經寫入一些字符串文件,它是在App文件夾中創建的。現在我想知道如何我可以讀取該數據寫入該文件在應用程序folder.Bellow我提到的代碼,通過我創建的文件在谷歌驅動器上的應用程序文件夾中。如果有人知道,那麼請幫助我如何閱讀?我搜索了很多,我也看到谷歌的演示,但我不明白。有沒有簡單的方法來做到這一點? 任何人都可以請幫助我,我會非常感謝你。下面的代碼是從https://github.com/googledrive/android-demos/blob/master/src/com/google/android/gms/drive/sample/demo/CreateFileInAppFolderActivity.java鏈接完成的。從谷歌驅動器從Android的應用程序文件夾中讀取文件

public class Fifth extends BaseDemoActivity { 

        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.activity_fifth); 
        } 

        @Override 
         public void onConnected(Bundle connectionHint) { 
          super.onConnected(connectionHint); 
          // create new contents resource 

          Drive.DriveApi.newContents(getGoogleApiClient()) 
            .setResultCallback(contentsCallback); 
         } 

         final private ResultCallback<ContentsResult> contentsCallback = new 
           ResultCallback<ContentsResult>() { 
          @Override 
          public void onResult(ContentsResult result) { 
           if (!result.getStatus().isSuccess()) { 
            showMessage("Error while trying to create new file contents"); 
            return; 
           } 
           // Get an output stream for the contents. 
           OutputStream outputStream = result.getContents().getOutputStream(); 
           // Write the bitmap data from it. 
           String data="hello world"; 
           byte[] bytes = data.getBytes(); 

           // ByteArrayOutputStream bitmapStream = new ByteArrayOutputStream(); 

         //  image.compress(Bitmap.CompressFormat.PNG, 100, bitmapStream); 
           try { 
            Log.i("Success", "able to write file contents."); 
            outputStream.write(bytes); 
           } catch (IOException e1) { 
            Log.i("Failier", "Unable to write file contents."); 
           } 
           MetadataChangeSet changeSet = new MetadataChangeSet.Builder() 
             .setTitle("appfile.txt") 
             .setMimeType("text/plain") 
             .build(); 

           Drive.DriveApi.getAppFolder(getGoogleApiClient()) 
             .createFile(getGoogleApiClient(), changeSet, result.getContents()) 
             .setResultCallback(fileCallback); 
          } 
         }; 

         final private ResultCallback<DriveFileResult> fileCallback = new 
           ResultCallback<DriveFileResult>() { 
          @Override 
          public void onResult(DriveFileResult result) { 
           if (!result.getStatus().isSuccess()) { 
            showMessage("Error while trying to create the file"); 
            return; 
           } 


           showMessage("Created a file in App Folder: " 
             + result.getDriveFile().getDriveId()); 
           Log.i("Drioved_ID", ""+result.getDriveFile().getDriveId()); 
          } 
         }; 

       } 

回答

0

從應用程序文件夾中讀取與讀取任何其他文件沒有區別。如果您有驅動器Id,只是做

DriveFile appFolderFile = driveApi.getFile(googleApiClient, driveId); 
+0

你能提供給我這樣做的更多的解釋或樣品? – jarnail

+0

你可以嘗試從這裏的例子:https://github.com/googledrive/android-demos/blob/master/src/com/google/android/gms/drive/sample/demo/RetrieveContentsActivity.java 請注意,在創建文件後,您需要保留驅動器ID,因爲您將使用它來檢索其內容 – Andrei

相關問題