Google Drive Android API (GDAA) getResourceId() 返回 null(计时问题)

2023-11-26

当测试时删除、垃圾箱中讨论的功能SO 22295903,我遇到了这个问题。

1/ 创建一个包含内容的文件

GoogleApiClient _gac;
DriveFile createFileWait(DriveFolder fldr, String name, String mime, byte[] buff) {
  DriveFile drvFile = null;
  try { 
    ContentsResult rslt = Drive.DriveApi.newContents(_gac).await();
    if (rslt.getStatus().isSuccess()) {
      Contents cont = rslt.getContents();    
      cont.getOutputStream().write(buff);
      MetadataChangeSet meta = (mime == null) ?
          new MetadataChangeSet.Builder().setTitle(name).build() :
          new MetadataChangeSet.Builder().setTitle(name).setMimeType(mime).build();
      drvFile = fldr.createFile(_gac, meta, cont).await().getDriveFile();
    }
  } catch (Exception e) {}
  return drvFile;
}

2/使用查询检索文件(它的标题):

ArrayList<DriveId> findAll(String title, String mime, DriveFolder fldr) {
  ArrayList<DriveId> dIDs = null;
  if (isConnected()) try {
    ArrayList<Filter> fltrs = new ArrayList<Filter>();
    fltrs.add(Filters.eq(SearchableField.TRASHED, false));
    if (title != null)  fltrs.add(Filters.eq(SearchableField.TITLE, title));
    if (mime  != null)  fltrs.add(Filters.eq(SearchableField.MIME_TYPE, mime));
    Query qry = new Query.Builder().addFilter(Filters.and(fltrs)).build(); 
    MetadataBufferResult rslt = (fldr == null) ? Drive.DriveApi.query(_gac, qry).await() : 
                                                   fldr.queryChildren(_gac, qry).await();
    if (rslt.getStatus().isSuccess()) {
      MetadataBuffer mdb = null;
      try { 
        mdb = rslt.getMetadataBuffer();
        if (mdb == null) return null;
        dIDs = new ArrayList<DriveId>();
        for (Metadata md : mdb) {
          if ((md == null) || md.isTrashed()) continue; 
          dIDs.add(md.getDriveId());
        }
      } finally { if (mdb != null) mdb.close(); } 
    }
  } catch (Exception e) {}
  return dIDs;
}

3/ 您获得有效的 DriveId。尝试使用它来获取资源 ID 以在 RESTful API 或其他地方使用。

String fileID = drvId.getResourceId();

你得到一个null价值。过了一会儿(随机的,很难指定),如果你重复查询,你最终会得到你的资源 ID。我知道为什么,这可能是延迟问题。我只是征求意见谷歌支持团队。有没有办法获得控制权?查询延迟状态?


发生这种情况是因为更改首先在本地保存,然后(可能)稍后当我们有足够的网络连接时上传到服务器。不幸的是,在新创建的文件提交到服务器之前,资源 ID 不可用。

目前您所能做的就是等待它可用。我们正在努力添加一些内容,以使此流程更加容易,敬请期待。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Drive Android API (GDAA) getResourceId() 返回 null(计时问题) 的相关文章

  • 如何在Android 4.2中更改Action Bar选项菜单的背景颜色?

    我想更改 Android 4 2 中选项 溢出 菜单的背景颜色 我已经尝试了所有方法 但它仍然显示主题设置的默认颜色 我使用了以下代码和 XML 配置 MainActivity java public class MainActivity
  • 将JSON数据解析到Android ListView中

    我已经潜伏这个网站很长一段时间了 幸运的是 到目前为止我所有的问题都得到了解答 我希望你们中的一些人能够阐明我的问题 我可以成功地让 ListView 来显示字符串数组 但是当我尝试将 JSON 数据解析为数组时 我的程序只是强制关闭 而
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • Android:如何让设备只运行一个应用程序?

    我有一个客户项目 我必须制作单任务 Android 设备 客户无法逃脱我公司开发的应用程序 此外 客户无法启动任何其他应用程序 而我们的应用程序会在设备启动时启动 总体而言 客户能够使用设备执行的所有操作就是运行我们的应用程序 除了 roo
  • 如何在 Picasso 中使用磁盘缓存?

    我正在使用 Picasso 在我的 Android 应用程序中显示图像 load image This is within a activity so this context is activity public void loadIma
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • AltBeacon 服务位于单独的 Android 进程中

    我需要帮助 有一个适用于 Xamarin Android 的应用程序 在其中 启动了一个与 AltBeacon 库配合使用的服务 在此服务中 创建了一个线程 在该线程中不断扫描信标 服务以 StartForeground 启动 该服务应该有
  • Android Studio 安装失败,APK 未签名

    最近从 Eclipse 更改为 Android Studio 我还更改了 JDKjava open jdk to jdk1 7 0 45 现在我尝试运行我的第一个应用程序 并收到以下消息 Installation failed since
  • org.apache.http.conn.HttpHostConnectException:在 android 中连接到 http://localhost 被拒绝

    我正在制作一个应用程序 在执行它时将图像上传到服务器并将其数据库更新到android中的服务器 它显示错误 Connection to http localhost refused 还有更多错误 我研究了这个问题 发现不是提供 URL 连接
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • 垂直从上到下线手势检测器

    我用的是 手势工具 注意到对于垂直从上到下的线无法检测 因为我在代码中使用生成的手势文件 如下所示 但无法检测垂直从上到下的线手势检测 import java util ArrayList import android app Activi
  • Android:如果任务管理器终止,则重新调用应用程序

    如果应用程序线程被任务管理器杀死 则应用程序线程将关闭 需要重新调用应用程序 就像它被其他应用程序或任务管理器杀死一样 任何想法 您必须使用 START STICKY 命令运行后台服务 只需扩展 Service 并重写 onCommand
  • phonegap html5 android 同步文件系统 IO

    如何使用 PhoneGaps 文件系统 API 同步读写文件 有可用的同步包装器吗 无法通过提供的 api 同步访问文件 从phonegap的实现方式猜测 我怀疑您是否可以编写一个插件来同步执行此操作
  • 如何获取小区广播消息?

    我尝试像模拟人生一样获取小区广播消息的文本 但它不起作用 public class SMSReceiver extends BroadcastReceiver Override public void onReceive Context c
  • 可用屏幕的尺寸

    我使用的是 Nexus 7 1280x800 android 4 2 2 API 17 我想获取屏幕的大小 将其划分为相同高度和宽度的正方形部分 我正在使用 FrameLayout 我的方块是 ImageView 的子类 我这样做 cont
  • 如何从一个活动检索 Double 值到另一活动?

    我制作了一个包含 2 个活动的应用程序 其中第一个活动包含一些 EditText 十进制数字 另一个活动也包含一些 EditText 十进制 现在我想将一个 EditText 的值传递给另一个 但作为 双 而不是作为一个字符串 因为该值将用
  • Google Drive V3、Google API 客户端 2.0 - 批量上传失败

    使用 Google Drive V3 和 API v2 0 主分支进行批量上传失败 我已经修改了https github com google google api php client blob master examples batch
  • 如何从图库动态卸载图像?

    我有自定义 ImageView public class ShadowedImageView extends ImageView private Paint mPaint public Bitmap bitmap null private
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Android Volley - 发布请求 - 无法在线工作

    我试图通过 Volley 发出 POST 请求 它在我的本地主机中工作得很好 但是当我将它移动到网络服务器时 响应为空 Java代码 RequestQueue queue Volley newRequestQueue this String

随机推荐

  • 有人在 tomcat 控制台上写了一条消息

    我在 Tomcat 7 上部署了一个应用程序 今天早上我注意到 Tomcat 控制台上有两条消息 你在 stderr 窗口看到我了吗 您也在浏览器窗口中看到了我吗 有人设法远程写入这些消息 我需要担心吗 有人黑了我的网站吗 thanks F
  • 在 Woocommerce 3 中重命名相关产品标题

    我曾经使用以下功能来更改 Woocommerce 中的相关产品文本 function my text strings translated text text domain switch translated text case Relat
  • 对目录文件进行排序并获取最大的文件名

    我有一个包含 40 个文件的目录 文件名从 0 到 39 例如 我正在尝试获取名称中数字最大的文件 这意味着我需要获取 39 我正在尝试对目录进行排序 我尝试过使用以下主题 如何检索目录中按名称排序的文件列表 在 C 中对 Director
  • 类型错误:无法读取未定义的属性(读取“$router”)vuejs

    因此 如果 api 调用返回状态 422 我尝试将用户重定向到不同的路线 但我收到错误 TypeError Cannot read properties of undefined reading router 我的routes js pat
  • 将 PySpark 数据帧列的聚合值存储到变量中

    我在这里使用 PySpark 数据框 test1 是我的 PySpark 数据帧 event date 是 TimestampType 因此 当我尝试获取 event date 的不同计数时 结果是一个整数变量 但是当我尝试获取同一列的最大
  • 为什么 Visual Studio 在第二次调试会话之前不会命中断点?

    通过 TEST 菜单或右键单击上下文菜单调试单元测试时 在对当前 C 测试类进行代码更改后 VS2013 始终会忽略单元测试中的断点 第二次调试会导致断点被命中 我怀疑这与VS2013的新功能 保持测试执行引擎运行 有关 您可以通过 TES
  • Google Protocol Buffers:C++ 的 parseDelimitedFrom 和 writeDelimitedTo

    抱歉再次问这个问题 但是我们能否一劳永逸地发布一些与 Java 函数匹配的 C 函数 它们似乎没有被谷歌添加 并且自己编写它们是相当痛苦的 下面的答案使用了一些this and this 这是带有 boost asio 的两个基本版本 请注
  • django 信号总是同步的吗?

    我正在开发一个 django IPN 插件 它将 IPN 数据保存到模型中 然后调用 post save 信号 我担心在这种用例 gunicorn gevent 等 下信号可能会异步调用 完成 IPN 经常向 iPN url 发送超过 1
  • 拖放跨域、iframe、浏览器窗口

    感谢 stackoverflow 我解决了很多 javascript 问题 但现在我没有希望就停在了这一点 很难描述 有清晰的视频显示了我拖放跨域 iframe 的问题 http www youtube com watch v v65mO2
  • SQL Server 的 mysql_real_escape_string 替代品[重复]

    这个问题在这里已经有答案了 我想知道 PHP 中 SQL Server 转义字符串的等效项是什么 好问题 我不知道 但你可以使用PDO quote 与PDO DBLIB driver EDIT 似乎this guy 从 StackOverf
  • 为什么“while true”会使用100%的CPU资源?

    我在 Linux 服务器上运行了以下 Java 代码 while true int a 1 2 导致其中一个CPU核心达到100 使用率 我对此感到困惑 因为我了解到CPU通过时间分割来处理任务 这意味着CPU将在一个时隙内执行一项任务 C
  • 将 MDB 转换为 CSV [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个 MS Access mdb 文件 我需要将其转换为 CSV 文件 我该怎么做 请不要向我指出任何免费软件 提前致谢 另一个有用的工具是 mdbtools http mdbt
  • 如何捕获此错误:“注意:未定义的偏移量:0”

    我想捕获这个错误 a 1 jfksjfks try b a 0 catch Exception e echo jsdlkjflsjfkjl Edit 事实上 我在以下行中收到此错误 parse xml gt children 0 gt ch
  • SSIS 2012 使用项目部署模型将值从子包传递到父包

    我正在使用新的项目部署模型 我有一个名为 ETL 的主包 我的 ETL 包所做的第一件事是运行一个名为 get SFTP files 的包 如图所示 在获取 SFTP 文件中 foreach 循环获取 ClientID 我如何将此值传递回父
  • 如何在 Android Studio 中创建我自己的“重新格式化代码”样式?

    在 Eclipse 中 窗口 gt 首选项 gt Java gt 代码样式 gt 格式化程序 有一个工具可以创建我自己的格式样式并将其应用到代码中 有没有办法在 Android Studio 中做到这一点 对于 Java 代码 要更改格式化
  • 有类似 C 语言的 STL(矢量、地图...)之类的库吗? [复制]

    这个问题在这里已经有答案了 可能的重复 C 容器类 库 有没有好的C语言集合库 在 C 中 您有一个非常有用的标准模板库 STL 它具有向量 映射 集合等结构 如果我使用纯 C 是否有任何库提供类似的结构 函数 Thanks glib是一个
  • 如何更改 Spring Boot 中允许的标头

    我目前正在使用 Auth0 和 Angular 2 GUI 它发送以下类型的标头 x xsrf token 在对 Spring Boot API 的请求中 我收到错误 XMLHttpRequest 无法加载http localhost 30
  • 使用 Zend_Auth 保护所有控制器

    我如何全局保护我的所有控制器 除了我的登录控制器 以确保我的应用程序在所有点都是安全的 没有ajax调用的隐藏后门等 我想我可以把它放在我的引导文件中 但这感觉不对 我试图避免向每个控制器添加任何代码 建议 edit 这是对 singles
  • 检查字符串是否仅包含字母+空格?

    我想编写一个传递字符串的静态方法 并检查该字符串是否仅由字母和空格组成 我可以根据需要使用 String 的方法 length 和 charAt i 我在想类似以下的事情 对伪代码感到抱歉 public static boolean onl
  • Google Drive Android API (GDAA) getResourceId() 返回 null(计时问题)

    当测试时删除 垃圾箱中讨论的功能SO 22295903 我遇到了这个问题 1 创建一个包含内容的文件 GoogleApiClient gac DriveFile createFileWait DriveFolder fldr String