В моем приложении 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());
}
};
}
Примечание. Можем ли мы фильтровать файл или папку, совместно используемые мной, с определенным именем папки?
Доступно ли вашим приложениям доступ к общим файлам? В настоящее время API Android для Google Диска поддерживает только доступ к области FILE (см. Подробности здесь). Поэтому, если ваше приложение не имеет права доступа к этим общим файлам, вы не получите их в результате запроса.