【问题标题】:How to use Google API (Calendar, Gmail, etc) from Android Things如何从 Android Things 使用 Google API(日历、Gmail 等)
【发布时间】:2018-07-14 13:46:24
【问题描述】:

我正在尝试从 Android Things 0.6.1 访问特定 Google 帐户的 Google 日历活动。

很遗憾,我无法使用Android Calendar API,因为 Android Things 没有与之关联的 Google 帐户,就像普通的 Android 设备一样,也没有可用于选择帐户并授予权限的用户界面。

我尝试使用普通的Java Calendar API,但在我尝试进行身份验证时,由于 JVM 不兼容,Android Things 失败了:

Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.Desktop" on path: DexPathList[[zip file "/system/framework/com.google.android.things.jar", zip file "/data/app/com.leinardi.android.things.deskclock-sFpdt1rVzS8n7goWxN7dFA==/base.apk"],nativeLibraryDirectories=[/data/app/com.leinardi.android.things.deskclock-sFpdt1rVzS8n7goWxN7dFA==/lib/arm, /system/lib, /vendor/lib]]

然后我尝试将 Google Assistant sample for Android Things 中的代码与日历 API 结合,但看起来日历 API 使用了与 Assistant 示例不同的 Credential 类(com.google.api.client.auth.oauth2.Credentialcom.google.auth.oauth2.UserCredentials)。

目前有没有办法使用 Android Things 中的日历 API?

【问题讨论】:

    标签: android google-api google-api-java-client android-things


    【解决方案1】:

    由于您所说的帐户问题,标准系统级日历 API 将无法工作。您或许可以使用适用于 Android 的 Google 日历 API(而不是 Java 指南)。但是,设备上缺少帐户仍会阻止您。如果您使用 Firebase Auth 和 Nearby,您可以从手机配套应用程序传输令牌,您可以在设备上以用户身份登录。

    然后您可以使用该令牌为用户获取访问令牌并进行 API 调用。

    重新启动后将授予添加到您的应用的权限。

    【讨论】:

    • Java Calendar API 怎么会依赖某种帐户?或者我们谈论不同的API?想澄清一下吗?
    • 您链接到的Java Calendar API 可能是为使用AWT UI 框架的桌面Java 应用程序设计的。 Android 略有不同,具有不同的 UI 框架。
    【解决方案2】:

    我确实找到了一种方法,包括一个配套的手机应用程序将令牌注入到 things 应用程序中。话虽如此,如果您对凭据进行序列化,然后在启动时对其进行反序列化,则手机应用程序将变为可选,或者您可以使用服务帐户。

    无论如何,请参阅 here 了解我所探索的内容。

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多