我的Google云端硬盘中有一些其他人与我共享的文件,我希望能够查询它们。不幸的是,元数据缓冲区的结果计数为 0
这是代码:
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(com.google.android.gms.drive.Drive.API)
.addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).addConnectionCallbacks(this)
.addOnConnectionFailedListener(this).build();
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle arg0) {
Query query = new Query.Builder().addFilter(Filters.sharedWithMe()).build();
Drive.DriveApi.query(mGoogleApiClient, query).setResultCallback(metadataCallback);
}
private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback =
new ResultCallback<DriveApi.MetadataBufferResult>() {
@Override
public void onResult(DriveApi.MetadataBufferResult result) {
if (!result.getStatus().isSuccess()) {
Log.d(TAG, "Problem while retrieving results");
return;
}
MetadataBuffer buffer = result.getMetadataBuffer();
if(buffer != null) {
int cnt = buffer.getCount();
Log.d(TAG, "BUFFER COUNT: " + cnt);
for(int i = 0; i < cnt; i++) {
Metadata meta = buffer.get(i);
Log.d(TAG, meta.getTitle());
}
buffer.close();
}
}
};
....................
我正在使用新的Google云端硬盘,并且还尝试将一些共享文件从传入文件夹移动到"我的云端硬盘"根目录。还是没有。我将不胜感激任何帮助和建议。
如前所述,无法使用谷歌驱动器 api android 从谷歌驱动器查询"与我共享"的文件,目前驱动器 API 仅允许您访问由您的应用程序制作的驱动器中的数据。
您可以通过更改自行验证 查询查询 = new Query.Builder().addFilter(Filters.sharedWithMe()).build();在 查询查询 = new Query.Builder().build();
并且您只看到一个名为"应用程序数据"的文件夹
要访问其他文件,您需要使用云端硬盘 Java API,如 https://developers.google.com/drive/android/auth#connecting_and_authorizing_the_google_drive_android_api 中所述
注意:Google Drive Android API 目前仅支持 drive.file 和 drive.appfolder 授权范围。如果应用程序需要其他权限或功能,则不需要 但在 Drive Android API 中可用,您必须使用 Google API Java Client。