使用谷歌日历 api 时,Android 给 IOException 提供“无法创建目录:/令牌”

T.k*_*kat 3 android google-calendar-api google-api

尝试将日历快速入门 API 实施到 Android 中,但是当我按照演示声明令牌时。 private final String TOKENS_DIRECTORY_PATH = "tokens";

然后在构建器中使用该字符串

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

但是Android在设置时返回此错误 DataStoreFactory

java.io.IOException: unable to create directory: /tokens

是否有不同的方法来创建一个有效的目录?还是我必须更改TOKENS_DIRECTORY_PATH?的文件路径?

Cha*_*n M 6

我使用了这段代码。

File tokenFolder = new File(Environment.getExternalStorageDirectory() +
            File.separator + TOKENS_DIRECTORY_PATH);
    if (!tokenFolder.exists()) {
        tokenFolder.mkdirs();
    }

    flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
            .setDataStoreFactory(new FileDataStoreFactory(tokenFolder))
            .setAccessType("offline")
            .build();
Run Code Online (Sandbox Code Playgroud)

并在 Android 清单文件中获取外部存储的权限

编辑: Java 的 Google API 文档中指定的方法似乎不适用于 Android。使用此github 项目作为将 Google API 集成到 Android 应用程序的指南。