Fusion Table 使用 App Inventor 和 genymotion 进行身份验证

Fusion Table authentication with App Inventor and genymotion

我有一个关于在 genymotion 中 运行 应用程序时与 App Inventor 的融合 tables 的身份验证的问题。我在 app inventor 中使用融合 tables,我已经发布了 table 并授予我自己的 google 帐户访问 tables 的权限。当我通过 app inventor(模拟器)运行 应用程序时,我可以查询数据库并做任何我想做的事。

模拟器的问题是它真的很慢,而且大部分时间都没有加载或响应。我已经安装了 genymotion 并且这个模拟器在 virtual box 中 运行s 更快,问题是在 genymotion 中没有任何显示。我看到 fusion table 框正在加载,但之后没有任何反应,也没有显示任何内容。我想我遇到这个问题是因为融合 table 无法将我的 genymotion 模拟器识别为我的 google 帐户,而 App Inventor 模拟器被称为我的 google 帐户,因为我登录时使用它。

如果我使用网络查看器,系统会提示我登录我的 google 帐户并识别该设备。我想在不使用 Web 查看器的情况下在我的应用程序中使用融合 tables,而且我不知道如何在 genymotion 模拟器上验证我的 google 帐户。有谁知道如何在我的模拟器或代码隐藏中执行此操作?提前致谢。

编辑:App Inventor 中的融合table 控件有 2 个属性(set/get ServiceAccountMail)和(set/get UseServiceAuthentication)。我认为那是我必须找到解决方案的地方,但我不知道如何使用这些属性。 AI2 API 表示如下:

ServiceAccountMail:使用服务帐户身份验证时的服务帐户电子邮件地址。 UseServiceAuthentication:指示是否应使用服务帐户进行身份验证

我不知道怎么用

是的,您应该可以使用服务帐户选项进行连接

设置步骤如下:

  1. 开发人员控制台:创建服务帐户。创建一个后 开发人员控制台中的服务帐户,您将获得一个 p12 文件 下载和一个服务帐户电子邮件以在 App Inventor 中使用。

  2. FusionTable:与ServiceAccount邮箱共享FusionTable 地址并将权限设置为 "can edit"。

  3. App Inventor:p12 文件必须作为资产上传到 App Inventor,这是 Keyfile 属性

  4. 中引用的文件

另请参阅此处的详细步骤:How to use the Service account option to connect to a Fusiontable