我的 Google云端硬盘 中有一些其他人与我共享的文件,我希望能够对其进行查询。不幸的是,MetadataBuffer的结果计数为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云端硬盘,并且还尝试将一些共享文件从“ 传入文件夹” 移到“ 我的云端硬盘” 根目录中。依然没有。我将不胜感激任何帮助和建议。
如前所述,在无法使用Google Drive api android从GoogleDrive查询“与我共享”的文件)时,目前Drive API使您只能访问由应用程序制作的Drive中的数据。
您可以通过更改 Query query = new Query.Builder()。addFilter(Filters.sharedWithMe())。build() 来自己验证 。 在 查询中查询= new Query.Builder()。build();
并且您仅看到一个文件夹,名为“ App Data”
要访问其他文件,您需要使用drive 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授权范围。如果您的应用程序需要其他权限或云端硬盘Android API中尚不可用的功能,则必须使用Google API Java Client。