2015-06-27 6 views
1

В моем приложении Andorid я хочу получить доступ только к тем файлам, которые доступны мне либо через web (drive.google.com), либо в приложении. Я использую API-интерфейс Google для доступа к общему файлу, но я не могу получить доступ к любому файлу или папке, совместно используемой мной. Мой код приведен ниже.Как получить доступ к общему файлу

public class QueryFilesSharedWithMeActivity extends BaseDemoActivity { 

private ListView mResultsListView; 
private ResultsAdapter mResultsAdapter; 

@Override 
protected void onCreate(Bundle b) { 
    super.onCreate(b); 
    setContentView(R.layout.activity_listfiles); 
    mResultsListView = (ListView) findViewById(R.id.listViewResults); 
    mResultsAdapter = new ResultsAdapter(this); 
    mResultsListView.setAdapter(mResultsAdapter); 
} 

/** 
* Clears the result buffer to avoid memory leaks as soon as the activity is no longer 
* visible by the user. 
*/ 
@Override 
protected void onStop() { 
    super.onStop(); 
    mResultsAdapter.clear(); 
} 

@Override 
public void onConnected(Bundle connectionHint) { 
    super.onConnected(connectionHint); 
    Query query = new Query.Builder() 
      .addFilter(Filters.sharedWithMe()) 
      .build(); 
    Drive.DriveApi.query(getGoogleApiClient(), query) 
      .setResultCallback(metadataCallback); 
} 

final private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback = 
     new ResultCallback<DriveApi.MetadataBufferResult>() { 
      @Override 
      public void onResult(DriveApi.MetadataBufferResult result) { 
       if (!result.getStatus().isSuccess()) { 
        showMessage("Problem while retrieving results"); 
        return; 
       } 
       mResultsAdapter.clear(); 
       mResultsAdapter.append(result.getMetadataBuffer()); 
      } 
     }; 

}

Примечание * Можно ли фильтровать файл или папку, совместно со мной с определенным именем папки?

+0

Вы говорите: «Я не могу получить доступ к любому файлу или папке, совместно используемой мной». Вы имеете в виду папки и файлы GoogleDrive, которые принадлежат другим, но поделились с вами? –

+0

@qbix да, я хочу получить доступ к папке диска Google и файлам, принадлежащим другим, но поделился со мной. – Sirconrad

+0

Ответ на [этот связанный вопрос] (http://stackoverflow.com/questions/26929154/unable-to-get-the-shared-with-me-files-with-the-google-drive-api-using- filters-s? lq = 1) указывает, что Android GoogleDrive API не поддерживает доступ к общим файлам, даже если существуют варианты запроса. Когда вы выполняете свой запрос, получаете ли вы какие-либо результаты? –

ответ

0

Можете ли ваше приложение разрешить доступ к общим файлам? В настоящее время API Google Android для Android поддерживает только доступ к области доступа к файлу (см. Подробности here). Поэтому, если ваше приложение не имеет права доступа к этим общим файлам, вы не получите их в результате запроса.

+0

привет Shailendra, Мой файл уже имеет право доступа к файлу. В настоящее время он получает доступ только к файлу, созданному моим приложением. Я хочу получить доступ к файлу, который создается из Интернета. вы можете добавить меня на skype sachin.auxiliumit. Я буду очень благодарен вам. Я боюсь за последние 7 дней. – Sirconrad

+0

Если файл Диска создается в Интернете, пользователь должен специально разрешить приложение с областью действия FILE в файле Диска, чтобы приложение могло получить к нему доступ. Какова основная причина доступа к общему файлу? Если вы хотите выполнять действия над отдельным файлом, вы можете запросить [открыть активность файла] (https://developers.google.com/android/reference/com/google/android/gms/drive/OpenFileActivityBuilder), где пользователь может выбрать файл диска (может быть общим файлом), и ваше приложение получает DriveId выбранного файла для выполнения каких-либо действий на нем. – Shailendra

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