Android 如何访问共享文件

Android 如何访问共享文件,android,google-drive-api,google-drive-android-api,Android,Google Drive Api,Google Drive Android Api,在我的android应用程序中,我只想访问那些通过web(drive.google.com)或应用程序与我共享的文件。我正在使用google drive API访问共享文件,但无法访问与我共享的任何文件或文件夹。我的代码如下 public class QueryFilesSharedWithMeActivity extends BaseDemoActivity { private ListView mResultsListView; private ResultsAdapter mResult

在我的android应用程序中,我只想访问那些通过web(drive.google.com)或应用程序与我共享的文件。我正在使用google drive API访问共享文件,但无法访问与我共享的任何文件或文件夹。我的代码如下

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());
            }
        };
公共类QueryFilesSharedWithMeActivity扩展了BaseDemoActivity{
私有列表视图mResultsListView;
私有结果适配器mResultsAdapter;
@凌驾
创建时受保护的void(束b){
super.onCreate(b);
setContentView(R.layout.activity\u列表文件);
mResultsListView=(ListView)findViewById(R.id.listViewResults);
mResultsAdapter=新结果适配器(此);
设置适配器(mResultsAdapter);
}
/**
*清除结果缓冲区,以避免在活动停止后立即发生内存泄漏
*用户可见。
*/
@凌驾
受保护的void onStop(){
super.onStop();
mResultsAdapter.clear();
}
@凌驾
未连接的公共无效(捆绑连接提示){
super.onConnected(connectionHint);
Query Query=new Query.Builder()
.addFilter(Filters.sharedWithMe())
.build();
Drive.DriveApi.query(getGoogleAppClient(),query)
.setResultCallback(metadataCallback);
}
最终私有结果回调metadataCallback=
新的ResultCallback(){
@凌驾
public void onResult(DriveApi.MetadataBufferResult结果){
如果(!result.getStatus().issucess()){
showMessage(“检索结果时出现问题”);
返回;
}
mResultsAdapter.clear();
追加(result.getMetadataBuffer());
}
};
}


注意*我们可以用特定的文件夹名称筛选与我共享的文件或文件夹吗?

您的应用程序有权访问共享文件吗?
目前Google Drive Android API仅支持文件范围访问(请参阅详细信息)。因此,如果您的应用程序无权访问这些共享文件,您将无法在查询结果中收到它们

您的应用程序是否有权访问共享文件?
目前Google Drive Android API仅支持文件范围访问(请参阅详细信息)。因此,如果您的应用程序无权访问这些共享文件,您将无法在查询结果中收到它们

您说“我无法访问与我共享的任何文件或文件夹”。您是指他人拥有但与您共享的google drive文件夹和文件吗?@qbix是的,我想访问他人拥有但与我共享的google drive文件夹和文件。的答案表明,即使存在查询选项,Android google drive API也不支持访问共享文件。当您运行查询时,是否得到任何结果?您说“我无法访问与我共享的任何文件或文件夹”。您是指他人拥有但与您共享的google drive文件夹和文件吗?@qbix是的,我想访问他人拥有但与我共享的google drive文件夹和文件。的答案表明,即使存在查询选项,Android google drive API也不支持访问共享文件。当您运行查询时,是否得到任何结果?您好,Shailendra,我的文件已被授权访问该文件。目前它只访问由我的应用程序创建的文件。我想访问那些从web创建的文件。你能给我加上skype sachin.auxiiumit吗。我将非常感谢你。我最近7天一直在挣扎。如果在web上创建了驱动器文件,用户必须在驱动器文件上专门授权文件范围的应用程序,以便应用程序可以访问它。访问共享文件的根本原因是什么?如果要对单个文件执行操作,您可以请求,用户可以在其中选择驱动器文件(可以是共享文件),并且您的应用程序将获取所选文件的驱动器ID,以便对其执行任何操作。您好,Shailendra,我的文件已被授权访问该文件。目前它只访问由我的应用程序创建的文件。我想访问那些从web创建的文件。你能给我加上skype sachin.auxiiumit吗。我将非常感谢你。我最近7天一直在挣扎。如果在web上创建了驱动器文件,用户必须在驱动器文件上专门授权文件范围的应用程序,以便应用程序可以访问它。访问共享文件的根本原因是什么?如果要对单个文件执行操作,可以请求,用户可以在其中选择驱动器文件(可以是共享文件),并且您的应用程序将获取所选文件的驱动器ID以对其执行任何操作。