授权Google Drive Android API

时间:2014-12-30 23:22:00

标签: android permissions google-drive-api google-drive-android-api

我尝试通过Google Drive Android API(非Web API)访问Google云端硬盘中的数据。什么是疯狂的,当我使用此访问权限时,我只能访问磁盘的一小部分(只有一个文件夹和几个文件)。我尝试使用示例代码,结果仍然相同。知道什么可能是错的吗?

Authorizing

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstance);

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addApi(Drive.API)
        .addScope(Drive.SCOPE_FILE)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();
}

@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}

Reading content

@Override
public void onConnected(Bundle connectionHint) {
    super.onConnected(connectionHint);
    Query query = new Query.Builder()
            .addFilter(Filters.or(
                    Filters.eq(SearchableField.MIME_TYPE, "text/html"),
                    Filters.eq(SearchableField.MIME_TYPE, "text/plain")))
            .build();
    Drive.DriveApi.query(getGoogleApiClient(), query).setResultCallback(metadataCallback);
}

  ResultCallback<MetadataBufferResult> childrenRetrievedCallback = 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.");
    }
};

1 个答案:

答案 0 :(得分:3)

作为API文档:

注意:Google云端硬盘Android API目前仅支持drive.filedrive.appfolder授权范围。如果您的应用需要Drive Android API中尚未提供的其他权限或功能,则必须使用Google API Java客户端。

我认为您需要drive授权,但这还没有为Android API做好准备。