当前位置: 首页 > 面试题库 >

java.awt.Desktop类

赏逸春
2023-03-14
问题内容

我正在使用适用于Android的Google API。由于适用于Android的Google API / G
Suite快速入门参考了他们的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。但我真的需要这个类,因为AuthorizationCodeInstalledAppauthorize()即将或更高版本调用它的实习生功能browse()。此功能需要Desktop类。

有没有办法为Android获取该类?还是有其他解决方法可以通过Google进行身份验证?


问题答案:

我现在自己解决了。我没有尝试从java.awt.Desktop获取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()方法,我将不再需要该类。我重写的类将只在您的android设备中使用该授权URL启动一个新的Browserwindow。

我希望,我能够帮助遇到此问题的任何人。



 类似资料:
  • 我正在android中运行java代码,以便在android中使用OAuth2.0创建凭据。当我运行这段代码时,我遇到了问题: 这是我的问题: 原因:java.lang.ClassNotFoundException:在路径上找不到类“java.awt.Desktop”:DexPathList[[zip file“/data/app/com.retrofitDemo-1/base.apk”],Nat

  • 本文向大家介绍请说说你熟悉的三个垂直社区或金融类 APP,并简述其典型用户画像。相关面试题,主要包含被问及请说说你熟悉的三个垂直社区或金融类 APP,并简述其典型用户画像。时的应答技巧和注意事项,需要的朋友参考一下 掌上生活、浦大喜奔、买单吧 金融类app用户首先是持有银行卡和智能手机的消费能力中上的人群。其次,因为金融类app多数被用于生活消费、查询账单、理财等功能,可以将其画像定义为:对理财和

  • 问题内容: 我是一个初学者,正在学习spring和hibernate(在项目中使用Maven),遇到了这个问题,被困在这里。试图找到解决方案,但最终无处可寻。请帮忙。非常感谢 错误:“找不到“http://java.sun.com/jsp/jstl/core ”的标记库描述符 码: 尝试了在Java构建路径中找不到超类“javax.servlet.http.HttpServlet”中给出的解决方案

  • 问题内容: 我在jsp页面中看到以下错误- 我看到了一篇关于此的文章,并尝试了一些建议的方法。BalusC提供了很好的输入- JSTL1.2和Standard.jar不能一起使用。我做到了,它解决了一段时间的问题- 但它再次出现。我不确定是否还有jar碰撞。我已经将所有jar定义为Maven中的依赖项。以下是我指定的依赖项pom.xml- 问题答案: 您将需要在项目中导入JSP API,而Serv

  • 问题内容: 我是使用库的新手,但是我需要能够向忘记密码的用户发送电子邮件。我正在尝试使用JavaMail和Apache Commons Email来实现这一点。但是,我认为我一定是错误地导入了库。 当我尝试发送电子邮件时,收到以下消息: 编码: 堆栈跟踪: 我已经尝试了几件事: 将包含所有.java文件的org.apache.commons.mail文件夹复制到我的netbeans项目的源文件中,

  • 问题内容: 您能否澄清一下,为什么在我们将 final 关键字设为不变时,为什么 在上课之前需要 final 关键字。我的意思是,如果我们将所有属性声明为私有和最终的,那么它也是一个不可变的类,不是吗? 很抱歉,这个问题似乎很简单,但是我对此感到非常困惑。帮帮我。 编辑:我知道一个声明为final的类不能被子类化。但是如果每个属性都是私有和final的,那有什么区别呢? 问题答案: 正如堆纸器所说