Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android &引用;找不到DriveId。您有权查看此文件吗?“;_Android_Api_Drive - Fatal编程技术网

Android &引用;找不到DriveId。您有权查看此文件吗?“;

Android &引用;找不到DriveId。您有权查看此文件吗?“;,android,api,drive,Android,Api,Drive,因此,我只是下载了Git中的驱动器Api示例,以便对驱动器进行简单的介绍,但它不适用于原始和未修改的代码。一直在向我传递同样的信息: “找不到DriveId。您有权查看此文件吗?” 即使我检索、查询或列出内容,此消息也是相同的。我在一些帖子中寻找这个问题,但我找不到解决这个问题的方法。任何帮助都将不胜感激 public class QueryFilesInFolderActivity extends BaseDemoActivity { private ListView mRe

因此,我只是下载了Git中的驱动器Api示例,以便对驱动器进行简单的介绍,但它不适用于原始和未修改的代码。一直在向我传递同样的信息: “找不到DriveId。您有权查看此文件吗?”

即使我检索、查询或列出内容,此消息也是相同的。我在一些帖子中寻找这个问题,但我找不到解决这个问题的方法。任何帮助都将不胜感激

    public class QueryFilesInFolderActivity extends BaseDemoActivity {

    private ListView mResultsListView;
    private ResultsAdapter mResultsAdapter;

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

    @Override
    public void onConnected(Bundle connectionHint) {
        super.onConnected(connectionHint);
        Drive.DriveApi.fetchDriveId(getGoogleApiClient(), EXISTING_FOLDER_ID)
                .setResultCallback(idCallback);
    }

    final private ResultCallback<DriveIdResult> idCallback = new ResultCallback<DriveIdResult>() {
        @Override
        public void onResult(DriveIdResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Cannot find DriveId. Are you authorized to view this file?");
                return;
            }
            DriveId driveId = result.getDriveId();
            DriveFolder folder = driveId.asDriveFolder();
            Query query = new Query.Builder()
                    .addFilter(Filters.eq(SearchableField.TITLE, "Filmoteca"))
                    .build();
            folder.queryChildren(getGoogleApiClient(), query)
                    .setResultCallback(metadataCallback);
        }
    };

    final private ResultCallback<MetadataBufferResult> metadataCallback = new
            ResultCallback<MetadataBufferResult>() {
        @Override
        public void onResult(MetadataBufferResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Problem while retrieving files");
                return;
            }
            mResultsAdapter.clear();
            mResultsAdapter.append(result.getMetadataBuffer());
            showMessage("Successfully listed files.");
        }
    };
}
公共类QueryFilesInFolderActivity扩展了BaseDemoActivity{
私有列表视图mResultsListView;
私有结果适配器mResultsAdapter;
@凌驾
创建公共void(Bundle){
super.onCreate(bundle);
setContentView(R.layout.activity\u列表文件);
mResultsListView=(ListView)findViewById(R.id.listViewResults);
mResultsAdapter=新结果适配器(此);
设置适配器(mResultsAdapter);
}
@凌驾
未连接的公共无效(捆绑连接提示){
super.onConnected(connectionHint);
Drive.DriveApi.fetchDriveId(getGoogleAppClient(),现有的\u文件夹\u ID)
.setResultCallback(idCallback);
}
final private ResultCallback idCallback=new ResultCallback(){
@凌驾
public void onResult(DriveIdResult结果){
如果(!result.getStatus().issucess()){
showMessage(“找不到DriveId。您有权查看此文件吗?”);
返回;
}
DriveId DriveId=result.getDriveId();
DriveFolder folder=driveId.asDriveFolder();
Query Query=new Query.Builder()
.addFilter(Filters.eq(SearchableField.TITLE,“Filmoteca”))
.build();
folder.queryChildren(getGoogleAppClient(),查询)
.setResultCallback(metadataCallback);
}
};
最终私有结果Callback metadataCallback=新建
ResultCallback(){
@凌驾
公共void onResult(MetadataBufferResult结果){
如果(!result.getStatus().issucess()){
showMessage(“检索文件时出现问题”);
返回;
}
mResultsAdapter.clear();
追加(result.getMetadataBuffer());
showMessage(“已成功列出文件”);
}
};
}

我发现了问题,事实上这很明显,但这让我疯狂了一周

要解决此问题,您应该首先使用GoogleAppClient登录(您可以在开发者主页或github中使用演示),然后需要为要访问的文件指定ID。 接下来,您将能够查询、检索驱动器Api,或者执行任何您想要的操作。虽然我认为这是一个API有点复杂的开始,需要一些耐心

提示:如果你在你的驱动器帐户中手动删除了一个文件,但仍然在你的应用程序中看到它,不要生气,驱动器要到10或15分钟才会进行sincronyze,也许有办法强制进行sincronyze,但我还没有找到它