Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
驱动器API android中的父文件夹错误无效_Android_Google Drive Api - Fatal编程技术网

驱动器API android中的父文件夹错误无效

驱动器API android中的父文件夹错误无效,android,google-drive-api,Android,Google Drive Api,我正在从我的应用程序创建文件夹。然后将文件上载到该文件夹。它在里面很好用。但是,当我在其他设备上使用相同的帐户并尝试在该文件夹上上载文件时,我会得到无效的父文件夹错误 下面是我的代码,与驱动器演示相同: public class CreateFileInFolderActivity extends BaseDemoActivity { private DriveId mFolderDriveId; @Override public void onConnected(B

我正在从我的应用程序创建文件夹。然后将文件上载到该文件夹。它在里面很好用。但是,当我在其他设备上使用相同的帐户并尝试在该文件夹上上载文件时,我会得到无效的父文件夹错误

下面是我的代码,与驱动器演示相同:

public class CreateFileInFolderActivity extends BaseDemoActivity {

    private DriveId mFolderDriveId;

    @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;
            }
            mFolderDriveId = result.getDriveId();
            Drive.DriveApi.newDriveContents(getGoogleApiClient())
                    .setResultCallback(driveContentsCallback);
        }
    };

    final private ResultCallback<DriveContentsResult> driveContentsCallback =
            new ResultCallback<DriveContentsResult>() {
        @Override
        public void onResult(DriveContentsResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Error while trying to create new file contents");
                return;
            }
            DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), mFolderDriveId);
            MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
                    .setTitle("New file")
                    .setMimeType("text/plain")
                    .setStarred(true).build();
            folder.createFile(getGoogleApiClient(), changeSet, result.getDriveContents())
                    .setResultCallback(fileCallback);
        }
    };

    final private ResultCallback<DriveFileResult> fileCallback =
            new ResultCallback<DriveFileResult>() {
        @Override
        public void onResult(DriveFileResult result) {
            if (!result.getStatus().isSuccess()) {
                Log.e("UPLOAD EXCEL","Error while trying to create the file: "+result.getStatus().getStatusMessage());
                showMessage("Error while trying to create the file");
                return;
            }
            showMessage("Created a file: " + result.getDriveFile().getDriveId());
        }
    };
}
公共类CreateFileInFolderActivity扩展BaseDemoActivity{
专用驱动ID mFolderDriveId;
@凌驾
未连接的公共无效(捆绑连接提示){
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。您有权查看此文件吗?”);
回来
}
mFolderDriveId=result.getDriveId();
Drive.DriveApi.newDriveContents(getGoogleAppClient())
.setResultCallback(DriveContentScalBack);
}
};
最终私有结果回调驱动器contentscallback=
新的ResultCallback(){
@凌驾
public void onResult(DriveContentsResult结果){
如果(!result.getStatus().issucess()){
showMessage(“尝试创建新文件内容时出错”);
回来
}
DriveFolder folder=Drive.DriveApi.getFolder(getGoogleAppClient(),mFolderDriveId);
MetadataChangeSet changeSet=新建MetadataChangeSet.Builder()
.setTitle(“新文件”)
.setMimeType(“文本/普通”)
.setStarred(true).build();
folder.createFile(getGoogleAppClient(),变更集,result.getDriveContents())
.setResultCallback(文件回调);
}
};
最终私有结果回调文件回调=
新的ResultCallback(){
@凌驾
public void onResult(DriveFileResult){
如果(!result.getStatus().issucess()){
Log.e(“上载EXCEL”,“尝试创建文件时出错:”+result.getStatus().getStatusMessage());
showMessage(“尝试创建文件时出错”);
回来
}
showMessage(“创建了一个文件:+result.getDriveFile().getDriveId());
}
};
}

这里有什么@Nabin我已经检查过这个问题了。我想了解更多。其他帐户有权访问该文件夹吗?@DaImTo我使用的是同一帐户,但在其他设备上。在链接中,它清楚地提到,外部设备范围依赖于来自google play的驱动器ID不是一个好主意。相反,您可以使用资源ID,其中createFromResourceId()被Drive.DriveApi.fetchDriveId替换。除此之外,您是否正在寻找其他解决方案?