所以我刚刚在Git中下载了Drive Api示例,以便轻松了解Drive,但它无法使用原始代码和未修改代码。一直向我扔同样的信息: “找不到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.");
}
};
}
答案 0 :(得分:0)
我发现了问题,事实上这很明显,但这让我疯了一个星期!
要获得此问题的修复程序,您应首先使用GoogleApiClient登录(您可以在开发人员主页面或github中使用该演示),然后您需要为要访问的文件指定ID。 接下来,您将能够使用Drive Api查询,检索或执行任何操作。虽然我认为它的API有点复杂,需要一些耐心。
提示:如果你在你的驱动器帐户中手动删除文件并且仍然在你的应用程序中看到它,请不要生气。驱动器不会粘合到10或15分钟,也许有办法强制sincronyze但我没有&#39找不到。