问题是来自' DriveId.getResourceId() ' 的'resourceID' 在新创建的文件(' DriveFolder.createFile(GAC,meta,cont) '的产品)上不可用(返回NULL ).如果通过常规列表或查询过程检索文件,则'resourceID'是正确的.
我怀疑这是一个时间/延迟问题,但目前尚不清楚是否存在强制刷新的应用程序操作." Drive.DriveApi.requestSync(GAC) "似乎没有任何效果.
我想将Google云端硬盘与我在Google Developers Console中注册我的应用的应用集成.我从https://github.com/googledrive/android-demos获得了一个示例.通过这个我可以在Google驱动器的根文件夹中创建一个文件,文件夹,但问题是我无法在其中创建文件或文件夹现有文件夹.在这种情况下,我得到一个祝酒词"找不到DriveId.您是否有权查看此文件?" 即我无法获得driveID
public class CreateFolderInFolderActivity extends BaseDemoActivity {
@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);
Drive.DriveApi.fetchDriveId(getGoogleApiClient(), EXISTING_FOLDER_ID)
.setResultCallback(idCallback);
}
final ResultCallback<DriveIdResult> idCallback = new ResultCallback<DriveIdResult>() {
@Override
public void onResult(DriveIdResult result) {
if (!result.getStatus().isSuccess()) {
showMessage(result.getStatus().toString());
showMessage("Cannot find DriveId. Are you authorized to view this file?");
return;
}
DriveFolder folder = Drive.DriveApi
.getFolder(getGoogleApiClient(), result.getDriveId());
MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle("MyNewFolder").build();
folder.createFolder(getGoogleApiClient(), changeSet)
.setResultCallback(createFolderCallback);
}
};
final ResultCallback<DriveFolderResult> createFolderCallback = new
ResultCallback<DriveFolderResult>() {
@Override
public void onResult(DriveFolderResult …Run Code Online (Sandbox Code Playgroud) android google-api google-drive-api google-drive-android-api
public class Helpers extends Activity implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
SharedPreferences preferences;
private static final String TAG = "BaseDriveActivity";
public static String EXISTING_FOLDER_ID;
protected static final int REQUEST_CODE_RESOLUTION = 1;
protected static final int NEXT_AVAILABLE_REQUEST_CODE = 2;
public static final String folderId = "FOLDER_ID";
public static final String fileName = "folderId";
private GoogleApiClient mGoogleApiClient;
@Override
protected void onResume() {
super.onResume();
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER) // required for App Folder sample
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build(); …Run Code Online (Sandbox Code Playgroud) android google-drive-api google-play-services google-drive-android-api