如何使用Android Things中的Google API(日历,Gmail等)

时间:2018-02-04 16:05:58

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

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

不幸的是,我无法使用Android Calendar API,因为Android Things没有与其关联的Google帐户,例如普通的Android设备,也没有可用于选择帐户并授予权限的用户界面。

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

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中的代码与Calendar API结合使用,但看起来像Calendar API使用了辅助示例中的其他Credential类(com.google.api.client.auth.oauth2.Credential vs com.google.auth.oauth2.UserCredentials

目前是否可以使用Android Things中的Calendar API?

2 个答案:

答案 0 :(得分:2)

我确实找到了一种方法,包括一个伴侣手机应用程序将令牌注入到应用程序中。话虽这么说,如果您序列化凭据,然后在启动时反序列化,手机应用程序将成为可选,或者您可以使用服务帐户。

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

答案 1 :(得分:1)

由于您所说的帐户内容,标准系统级日历API无法正常运行。您可以使用Google Calendar API for Android(而不是Java指南)。但是,设备上缺少帐户仍会阻止您。如果您使用Firebase身份验证和附近,则可以从手机配套应用转移令牌,您可以在设备上以用户身份登录。

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

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