Android дает IOException с «невозможно создать каталог: / токены» при использовании API календаря Google - PullRequest
0 голосов
/ 10 декабря 2018

Попытка внедрить API-интерфейс Calendar Quickstart в 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();

Но Android возвращает эту ошибку при установке DataStoreFactory

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

Есть ли другой способ создания каталога, который будет работать?или я должен изменить путь к файлу TOKENS_DIRECTORY_PATH?

1 Ответ

0 голосов
/ 11 декабря 2018

Я использовал этот кусок кода.

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();

И получил разрешения на внешнее хранилище в файле манифеста Android

РЕДАКТИРОВАТЬ: Методы, указанные в документации Google APIдля Java, кажется, не работает хорошо для Android.Используйте этот проект github в качестве руководства по внедрению интеграции API Google в приложения Android.

...