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