0

有没有办法设置元数据描述?

https://developer.android.com/reference/com/google/android/gms/drive/Metadata.html#getDescription()

如果是这样,长度限制是多少?

我在 api 中看不到任何内容:https ://developer.android.com/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html

4

1 回答 1

1

不幸的是,目前还没有,AFAIK。我现在要做的是初始化 GDAA 和 RESTful API(参见“垃圾解决方案” SO 22295903),如下所示:

  private GoogleApiClient _gac;
  private com.google.api.services.drive.Drive _svc;
  public GoogleApiClient init(String email){
    _gac = new GoogleApiClient.Builder(UT.ACTX).addApi(com.google.android.gms.drive.Drive.API)
      .addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).setAccountName(email).build();

    com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential crd =
     GoogleAccountCredential.usingOAuth2(UT.ACTX, 
                            Arrays.asList(com.google.api.services.drive.DriveScopes.DRIVE_FILE));
    crd.setSelectedAccountName(email);  
    _svc = new com.google.api.services.drive.Drive.Builder(
                            AndroidHttp.newCompatibleTransport(), new GsonFactory(), crd).build();
    return this;
  }

您从 DGAA(上面的 GoogleApiClient _gac)获得描述,但像这样(关闭 UI 线程)将其更新/写入 RESTFul:

  public void oldDescUpW(String titl, String mime, String desc) {
    try {
      final FileList gLst = _svc.files().list()
         .setQ("title = '"+titl+".jpg' and mimeType = '"+mime+"' and trashed = false")
         .setFields("items(id)").execute();
      if (gLst.getItems().size() == 1) {
        final String sId = gLst.getItems().get(0).getId();
        com.google.api.services.drive.model.File body = 
                                                new com.google.api.services.drive.model.File();
        body.setDescription(desc);
      _svc.files().patch(sId, body).execute();
      }
    } catch (Exception e) {} 
  }    

也可以使用 GDAA 中的“资源 ID”来处理 RESTful 中的文件,但它并不总是立即可用(如果文件是在 GDAA 中创建的)。见SO 22874657

免责声明:

这是一个 HACK,不应该在 GDAA 交付替代方案之后继续存在。

于 2014-04-07T14:05:43.530 回答