класс java.awt.Desktop - PullRequest
       11

класс java.awt.Desktop

0 голосов
/ 17 октября 2018

Я использую Google API для Android.Поскольку Google API / G Suite Quickstart для Android ссылается на их примеры Java, я пытаюсь реализовать это:

GoogleAuthorizationCodeFlow flow =
            new GoogleAuthorizationCodeFlow.Builder(
                    ReadMail.HTTP_TRANSPORT, ReadMail.JSON_FACTORY, clientSecrets, ReadMail.SCOPES)
                    .setDataStoreFactory(ReadMail.DATA_STORE_FACTORY)
                    .setAccessType("offline")
                    .build();


    AuthorizationCodeInstalledApp authCodeInstalledApp = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver());
    Credential credential = authCodeInstalledApp.authorize("user");

Проблема, с которой я сталкиваюсь сейчас, состоит в том, что Android просто поддерживает подмножество классов JDK.Поэтому java.awt.Desktop не поддерживается.Но мне действительно нужен этот класс, так как AuthorizationCodeInstalledApp authorize() рано или поздно вызовет свою функцию интерна browse().Для этой функции нужен класс Desktop.

Есть ли способ получить этот класс для Android?Или есть другой способ аутентификации в Google?

1 Ответ

0 голосов
/ 18 октября 2018

Я решил это сам сейчас.Вместо того, чтобы пытаться получить класс Desktop из java.awt.Desktop, я просто переписал метод on Authorization:

AuthorizationCodeInstalledApp ab = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()){
        protected void onAuthorization(AuthorizationCodeRequestUrl authorizationUrl) throws IOException {
                String url = (authorizationUrl.build());
                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                main_Activity.startActivity(browserIntent);
            }
        };

Причина, по которой я это сделал, заключается в том, что authorize () вызовет onAuthorization (), который вызоветbrowse (), который проверяет, поддерживается ли Desktop или нет.Поэтому, переписав метод onAuthorization (), я больше не буду нуждаться в этом классе.Мой переписанный класс просто запустит новое окно браузера с этим URL-адресом авторизации на вашем устройстве Android.

Надеюсь, я смог помочь любому, кто столкнулся с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...