驱动器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替换。除此之外,您是否正在寻找其他解决方案?