【问题标题】:Connecting to Google Spreadsheet连接到 Google 电子表格
【发布时间】:2018-10-08 23:07:43
【问题描述】:

我正在尝试根据https://developers.google.com/sheets/api/quickstart/java 通过 java 连接到谷歌电子表格。

如果我在我的 IDE 上执行此示例,它可以正常工作。 现在我想将此示例集成到我的 android 应用程序中。第一个activity直接调用上一个链接的main-method(代码在链接的step3中,main方法已经改名,以便被activity调用)。但我收到一个错误:

    W/System.err: java.io.IOException: unable to create directory: /tokens
    W/System.err:     at com.google.api.client.util.store.FileDataStoreFactory.<init>(FileDataStoreFactory.java:61)
    W/System.err:     at com.kazumi.management.ConnectToDatabase.getCredentials(ConnectToDatabase.java:70)

根据报错应该是这一行:

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
                HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
                .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
                .setAccessType("offline")
                .build();

所以原因是,这个函数无法在我的虚拟 android 设备上创建目录。但为什么会这样呢?是否存在解决方法?

【问题讨论】:

  • 使用专用的Android library 可能会带来更好的运气。
  • @Phix 你是否知道访问和阅读谷歌表格的教程/说明指南的链接?
  • 我在发帖之前并没有深入研究它,但它确实说在 gradle deps 之后 Java 指南将起作用。我猜 Android 创建文件的方式与常规的 ol' java 不同,所以我建议用 Android 版本替换有问题的代码。在这种情况下,您可以使用 Android 提供的任何东西,而不是 new java.io.File...(我已经有一段时间没有使用它了)

标签: java android android-studio google-sheets google-sheets-api


【解决方案1】:

所以我自己找到了解决方案。 Android 上很难访问内部和外部存储 (https://developer.android.com/guide/topics/data/data-storage)

所以为了在我的内部存储上创建一个目录,我需要使用这个:

File folder = getDir("theFolder",Context.MODE_PRIVATE);

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多