/** * Searches a fusion table in user's Google tables. * * @param tableName name of fusion table to search * @param context android context * @param accountName name of account * @param isDelete whether delete this track * @return true means find and delete fusion table */ public static boolean searchFusionTableByTitle( String tableName, Context context, String accountName, boolean isDelete) { try { GoogleAccountCredential credential = SendToGoogleUtils.getGoogleAccountCredential( context, accountName, SendToGoogleUtils.FUSION_TABLES_SCOPE); if (credential == null) { return false; } Fusiontables fusiontables = new Fusiontables.Builder( AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential) .build(); List<Table> tables = fusiontables.table().list().execute().getItems(); for (Iterator<Table> iterator = tables.iterator(); iterator.hasNext(); ) { Table table = (Table) iterator.next(); String title = table.getName(); if (title.equals(tableName)) { if (isDelete) { fusiontables.table().delete(table.getTableId()).execute(); } return true; } } } catch (Exception e) { Log.d(EndToEndTestUtils.LOG_TAG, "Failed when operate fusion table.", e); } return false; }
/** Inserts a row in the newly created table for the authenticated user. */ private static void insertData(String tableId) throws IOException { Sql sql = fusiontables .query() .sql( "INSERT INTO " + tableId + " (Text,Number,Location,Date) " + "VALUES (" + "'Google Inc', " + "1, " + "'1600 Amphitheatre Parkway Mountain View, " + "CA 94043, USA','" + new DateTime(new Date()) + "')"); try { sql.execute(); } catch (IllegalArgumentException e) { // For google-api-services-fusiontables-v1-rev1-1.7.2-beta this exception will always // been thrown. // Please see issue 545: JSON response could not be deserialized to Sqlresponse.class // http://code.google.com/p/google-api-java-client/issues/detail?id=545 } }
/** Create a table for the authenticated user. */ private static String createTable() throws IOException { View.header("Create Sample Table"); // Create a new table Table table = new Table(); table.setName(UUID.randomUUID().toString()); table.setIsExportable(false); table.setDescription("Sample Table"); // Set columns for new table table.setColumns( Arrays.asList( new Column().setName("Text").setType("STRING"), new Column().setName("Number").setType("NUMBER"), new Column().setName("Location").setType("LOCATION"), new Column().setName("Date").setType("DATETIME"))); // Adds a new column to the table. Fusiontables.Table.Insert t = fusiontables.table().insert(table); Table r = t.execute(); View.show(r); return r.getTableId(); }
/** * @param tableId * @throws IOException */ private static void showRows(String tableId) throws IOException { View.header("Showing Rows From Table"); Sql sql = fusiontables.query().sql("SELECT Text,Number,Location,Date FROM " + tableId); try { sql.execute(); } catch (IllegalArgumentException e) { // For google-api-services-fusiontables-v1-rev1-1.7.2-beta this exception will always // been thrown. // Please see issue 545: JSON response could not be deserialized to Sqlresponse.class // http://code.google.com/p/google-api-java-client/issues/detail?id=545 } }
/** List tables for the authenticated user. */ private static void listTables() throws IOException { View.header("Listing My Tables"); // Fetch the table list Fusiontables.Table.List listTables = fusiontables.table().list(); TableList tablelist = listTables.execute(); if (tablelist.getItems() == null || tablelist.getItems().isEmpty()) { System.out.println("No tables found!"); return; } for (Table table : tablelist.getItems()) { View.show(table); View.separator(); } }
// ---------------------------------------------------------------------------------------------------------------- // Method: GetTableId // Inputs: none // Outputs: none // Description: Get Table ID from Table Nam // ---------------------------------------------------------------------------------------------------------------- private static String GetTableId(String tableName) throws IOException { String tid = null; // Set default return System.out.println("Get Table ID: " + tableName); // Print header // Get the table list Fusiontables.Table.List listTables = FusionTables.table().list(); TableList tablelist = listTables.execute(); // // If there are no tables, print that info if (tablelist.getItems() == null || tablelist.getItems().isEmpty()) { // System.out.println("No tables found!"); // } // else // Else, loop through tables, find match { // If it matches then save the table ID for (Table table : tablelist.getItems()) // { // if (table.getName().equals(tableName)) tid = table.getTableId(); } // Printout the results of that System.out.println(tableName + " - tableId: " + tid); // } // return tid; // Return the table ID }
/** Deletes a table for the authenticated user. */ private static void deleteTable(String tableId) throws IOException { View.header("Delete Sample Table"); // Deletes a table Delete delete = fusiontables.table().delete(tableId); delete.execute(); }
// ---------------------------------------------------------------------------------------------------------------- // Method: AddNewEntry // Inputs: RF Data Entry (JSON) // Outputs: Success = TRUE / Failure = FALSE // Description: Insert new data to table (executes SQL command) // ---------------------------------------------------------------------------------------------------------------- public boolean AddNewEntry(String json, boolean fusion_tables) { boolean status; // Return status (success / failure) try // Try to get JSON, and save data to database { // Gson gson = new GsonBuilder().create(); // Create Gson builder RFData RFMember = gson.fromJson(json, RFData.class); // Convert from JSON to RFData if (RFMember.XbeeID != -1) // If not default then save data { // Print debug information to port System.out.println( "Insert New RF Data into Table - XbeeID: " + RFMember.XbeeID + ", RSSI: " + RFMember.RSSI); SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sql_string; // Build up SQL string sql_string = "INSERT INTO RF_Fields ("; // Insert SQL statement, Table: RF_Fields sql_string += "intXbeeID,"; // Field: intXbeeID sql_string += "intDeviceID,"; // Field: intDeviceID sql_string += "fltRSSI,"; // Field: fltRSSI sql_string += "fltLatitude,"; // Field: fltLatitude sql_string += "fltLongitude,"; // Field: fltLongitude sql_string += "fltYaw,"; // Field: fltYaw sql_string += "fltPitch,"; // Field: fltPitch sql_string += "fltRoll,"; // Field: fltRoll sql_string += "dtSampleDate) "; // Field: dtSampleDate sql_string += "VALUES ("; // Values indetifier sql_string += RFMember.XbeeID + ","; // Value: XbeeID sql_string += RFMember.DeviceID + ","; // Value: DeviceID sql_string += RFMember.RSSI + ","; // Value: RSSI sql_string += RFMember.Latitude + ","; // Value: Latitude sql_string += RFMember.Longitude + ","; // Value: Longitude sql_string += RFMember.Yaw + ","; // Value: Yaw sql_string += RFMember.Pitch + ","; // Value: Pitch sql_string += RFMember.Roll + ","; // Value: Roll sql_string += "'" + ft.format(RFMember.SampleDate) + "')"; System.out.println("SQL: " + sql_string); // Debug print the SQL statement // Statement stmt = conn.createStatement(); // Build SQL statement stmt.execute(sql_string); // Execute the SQL statement stmt.close(); // Close the statement status = true; // Success if (fusion_tables) // Only add to the fusion tables if the flag { // is set // Add to fusion table String tableId = GetTableId("RF Field Data"); // Get the "Customer Data" Table sql_string = "INSERT INTO " + tableId + " ("; // Insert SQL statement, Table: Table ID sql_string += "XbeeID,"; // Field: intXbeeID sql_string += "DeviceID,"; // Field: intDeviceID sql_string += "RSSI,"; // Field: fltRSSI sql_string += "Location,"; // Field: fltLatitude sql_string += "Longitude,"; // Field: fltLongitude sql_string += "Yaw,"; // Field: fltYaw sql_string += "Pitch,"; // Field: fltPitch sql_string += "Roll,"; // Field: fltRoll sql_string += "SampleDate) "; // Field: dtSampleDate sql_string += "VALUES ("; // Values indetifier sql_string += RFMember.XbeeID + ","; // Value: XbeeID sql_string += RFMember.DeviceID + ","; // Value: DeviceID sql_string += RFMember.RSSI + ","; // Value: RSSI sql_string += RFMember.Latitude + ","; // Value: Latitude sql_string += RFMember.Longitude + ","; // Value: Longitude sql_string += RFMember.Yaw + ","; // Value: Yaw sql_string += RFMember.Pitch + ","; // Value: Pitch sql_string += RFMember.Roll + ","; // Value: Roll sql_string += "'" + ft.format(RFMember.SampleDate) + "')"; Sql sql = FusionTables.query().sql(sql_string); // Build Fusion Query // Try and execute the SQL command try // { // sql.executeAndDownloadTo(System.out); // Execute command, stream to the system.out } // catch (IllegalArgumentException e) // { // } // } } // else // { // System.err.println("AddNewEntry: Invalid JSON data"); // Print the exception data and exit status = false; // Failure, invalid JSON or data } } // catch (Exception e) // Exception processing: { // System.err.println("AddNewEntry: " + e.getMessage()); // Print the exception data and exit status = false; // Failure } // return status; // Return status }