0

早安#1社区,的Android编程使用谷歌表

我一直在一个Android应用程序,目前运行到的问题堆载。

场景: 我需要将数据推送到Google Spreadsheet,但这里是问题所在,此应用程序只能部署到10-15个10英寸平板电脑。现在,该应用程序是针对技术人员的评估应用程序,但是当技术人员在现场时,他们不会有数据连接,因为平板电脑仅支持WiFi。应用程序能够连接的唯一时间是当他们在办公室早上聚会并同步应用程序时,确保数据可以通过Google Drive和Android同步到Google表格。

所以我想要做的是采取初始电子表格,将其转换为sqlite数据库,并让应用程序从设备本地填充数据字段,然后当估计完成时,以某种方式将数据应用返回到Google电子表格并保存到设备。 (这是可能的,如果是这样,我可以在哪里可以找到有关将数据从sqlite数据库转换为Google Spreadsheet的信息)。

然后,当技术人员回到有数据连接的办公室时,将新创建的工作表同步到Google驱动器,以便管理员可以管理他需要管理的内容。

我已经搜索和搜索,但不能围绕这一点,所以任何帮助将是有益的。

另一个问题是,由于在执行估算时没有与设备的数据连接,因此我们实施的Google Plus登录在外出时不起作用,所以我还需要制作一个sqlite数据库可以处理的本地登录过程?

在此先感谢。

回答

0

您可以在设备上安装Google Sheets应用程序吗?如果是这样,你可能不必把事情弄得这么复杂。 Here,如果您安装了应用程序,则可以看到Google表格也可以脱机使用。所以他们只需要在电子表格上工作,在第二天早上回到办公室并同步。这不可能解决你所有的问题吗?请让我知道,如果我错过了一些东西,但从我的理解中,这应该够了。

+0

嘿谢谢,pointNClick,是的,现实地说,这将解决所有的问题,我甚至想到了这一点,但客户端有我们制作一个Android应用程序,用于填充和保存电子表格中的数据以及数据库之间的数据(Sqlite)。这位经理并不希望他的技术人员搞砸传播者,而是让应用程序填充所需的计算领域。我知道这很乏味,因为我必须下载电子表格,转换成sqlite数据库,保存数据,然后尝试从保存的数据字段重新生成谷歌电子表格,并在数据区域进行同步。 – 2015-04-02 18:23:28

+0

据我所知,没有任何东西可以为你做所有事情。所以你必须想出你自己的解决方案。您可以使用[Sheets API](https://developers.google.com/google-apps/spreadsheets/?csw=1#sending_a_structured_query_for_rows)为您获取所有数据,但与sqlite往来会变得杂乱无章,我的想法是。但是,如何将电子表格同步到主控表中,技术人员只能上传新数据并且不会混淆旧的(主控)数据?有关于此的任何想法? – pointNclick 2015-04-02 20:07:06

+0

我不认为它是不可行的,只是它会要求您编写实现来回传输数据的主要部分。使用主表和辅表只需要你编写一个脚本来完成所有这些工作,没有你自己的服务器实现来处理数据,登录等等,并且数据安全地通过实时可见性更新。这种方式,即使你给他们现场设备,也没有关系。虽然我知道你可能有担心,你不能分享,但我想了解这是否可能考虑? – pointNclick 2015-04-02 20:18:05

0

我真的不能告诉你如何直接将更改上传到该文件,但我可以告诉你如何使用Google Drive API for Android将内容下载为csv,然后我认为您可以编辑你请(或将其转换为SQL表)。

注意:如果您的文件不是Google Spreadsheets文件,则会更容易。下面Google的Github链接的演示可以用他们的方式来完成你的任务。如果你想使用谷歌电子表格文件,那么我的(可怕的)过程可能是有用的。

警告:这是一个真正的困难方法来做到这一点,但只有这样我才能使用GOOGLE DRIVE API。

我假设您已经看到Google的Google Drive API示例https://github.com/googledrive/android-demos/tree/master/src/com/google/android/gms/drive/sample/demo的内容。我也会假设你想出了如何找到你正在寻找的文件,但是你不能访问文件的内容。

当你找到DriveFile后,你应该得到该文件的元数据。获取元数据可以让我们获得该文件的替代链接。替代链接如下所示: https://docs.google.com/spreadsheets/d/[unique_file_id]/edit?usp=drivesdk

我们可以做一些字符串编辑并删除最后一个斜杠后的所有内容,然后添加export?format = csv。

你的链接现在看起来是这样的: https://docs.google.com/spreadsheets/d/[unique_file_id]/export?format=csv

可以调用的AsyncTask来下载网址,并获得包含该文件的内容的InputStream。

如果你不需要担心每个人都上传到同一个文件(这是有道理的,因为有可能重叠的数据),那么你的第二个问题变得更容易。看看这个文件,看看如何在根文件夹中创建一个文件的例子: https://github.com/googledrive/android-demos/blob/master/src/com/google/android/gms/drive/sample/demo/CreateFileActivity.java