2016-07-18 3 views
0

Я смог настроить сборщик файлов Google Диска, чтобы я мог прочитать содержимое любого файла, выбранного пользователем. Тем не менее, я хотел бы иметь возможность загружать файлы Документов Google, выбранные пользователем в виде текстовых файлов, а затем читать их содержимое, хотя мне удалось найти решения для этого, используя API Drive Rest, который, как я считаю, отделен от API Google Диска для Android. Есть ли какое-то решение, которое позволит мне это сделать? В настоящее время мой код для загрузки файлов выглядит следующим образом:Загрузить документ Документов Google в виде текстового файла с помощью API Google Диска для Android

final private class RetrieveDriveFileContentsAsyncTask 
     extends ApiClientAsyncTask<DriveId, Boolean, String> { 

    public RetrieveDriveFileContentsAsyncTask(Context context) { 
     super(context); 
    } 

    @Override 
    protected String doInBackgroundConnected(DriveId... params) throws IOException { 
     String contents = null; 
     DriveId driveId=params[0]; 
     DriveFile file = driveId.asDriveFile(); 
     DriveApi.DriveContentsResult driveContentsResult = 
       file.open(getGoogleApiClient(), DriveFile.MODE_READ_ONLY, null).await(); 
     if (!driveContentsResult.getStatus().isSuccess()) { 
      return null; 
     } 
     DriveContents driveContents = driveContentsResult.getDriveContents(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(driveContents.getInputStream())); 
     StringBuilder builder = new StringBuilder(); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      builder.append(line); 
      builder.append('\n'); 
     } 
     contents = builder.toString(); 
     driveContents.discard(getGoogleApiClient()); 
     return contents; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     if (result == null) { 
      return; 
     } 
     Intent intent=new Intent(getContext(),NotesActivity.class); 
     intent.putExtra("setTextTo",result); 
     startActivity(intent); 
    } 
} 
+0

Android API - это оболочка API REST, поэтому вы можете получить какой-либо объект File? И можете ли вы открыть документ и прочитать содержимое в String? –

+0

Я могу прочитать содержимое в строке любого файла, но файлы, созданные в документах Google. Кроме того, я не думаю, что могу получить один и тот же файл. – Daniel

+0

Хорошо, если вы можете прочитать контент, тогда вы можете записать его в текстовый файл, так что же в этом проблема? –

ответ

2

API Google Диска не предоставляет функции конвертации. Для этого вам потребуется использовать REST API.

+0

Так что же в остальном API есть сборщик файлов, который я могу использовать вместо одного из API Google Диска для Android? – Daniel

+1

Нет, сборщик файлов андроидов, предоставленный API REST (нет, есть сборщик веб-файлов). Я думаю, что в вашей ситуации было бы лучше использовать API-интерфейс Drive android API, чтобы показать сборщик файлов. После выбора файла вы можете получить resourceId выбранного файла (returnDriveId.getResourceId()) и использовать его в запросах API REST для выполнения преобразования и т. Д. – Shailendra

+0

@Shailendra Я пытаюсь сделать то же самое. Но для создания экземпляра Drive Service Instance вам необходимо иметь имя AccountName, которое не представляется возможным получить в Google Диске Android API – osayilgan

 Смежные вопросы

  • Нет связанных вопросов^_^