I am developing an Android application that uses syncano to send data to the syncano server, but the data refuses to send. We checked that the conditions for our dispatch work, but this will not work. Here is the activity that is used to send data:
package com.crash.beacon;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import com.crash.beacon.Book;
import com.syncano.library.Syncano;
import com.syncano.library.api.Response;
public class MainActivity extends AppCompatActivity implements SensorEventListener, LocationListener {
boolean isEnabled = false;
Button btn;
private Syncano syncano;
String[] listItems = new String[]{"Home", "About", "Website"};
float lat = 0, lng = 0, alt = 0;
Sensor accel;
SensorManager manager;
float x = 0, y = 0, z = 0;
DrawerLayout dl;
private ActionBarDrawerToggle mDrawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.crash);
syncano = new Syncano("api_key", "late-surf-9471");
gui(isEnabled);
manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
accel = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
onLocationChanged(location);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void onCrash(View view){
isEnabled = !isEnabled;
gui(isEnabled);
}
public void gui(boolean state){
if(state){
btn.setText("Enabled");
}
else{
btn.setText("Disabled");
}
}
@Override
protected void onResume(){
super.onResume();
manager.registerListener(this, accel, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause(){
super.onPause();
manager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
float hLat = 39, hLng = -75, hAlt = 25;
final Book book = new Book();
book.latitude = lat;
book.longitutde = lng;
book.altitude = alt;
book.force_x = x;
book.force_y = y;
book.force_y = z;
if(isEnabled){
if(Math.abs(x) > 20 && Math.abs(y) > 20 && Math.abs(z) > 20){
new Network(book, syncano).execute();
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public void onLocationChanged(Location location) {
lat = (float)location.getLatitude();
lng = (float)location.getLongitude();
alt = (float)location.getAltitude();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
Network.java
package com.crash.beacon;
import android.os.AsyncTask;
import android.util.Log;
import com.syncano.library.Syncano;
import com.syncano.library.api.Response;
import java.util.List;
public class Network extends AsyncTask<String, Void, String> {
Book b;
Syncano syn;
public Network(Book book, Syncano syncano){
this.b = book;
this.syn = syncano;
}
@Override
protected String doInBackground(String... params) {
Log.d("code", String.valueOf(Response.CODE_SUCCESS));
Response<List<Book>> responseGetBooks = syn.createObject(b).send();
return "Executed";
}
}
Book.java
package com.crash.beacon;
import com.syncano.library.annotation.SyncanoClass;
import com.syncano.library.annotation.SyncanoField;
import com.syncano.library.data.SyncanoObject;
@SyncanoClass(name = "ltds")
public class Book extends SyncanoObject{
public static final String FIELD_LAT = "latitude";
public static final String FIELD_LNG = "longitude";
public static final String FIELD_ALT = "altitude";
public static final String FIELD_X = "force_x";
public static final String FIELD_Y = "force_y";
public static final String FIELD_Z = "force_z";
@SyncanoField(name = FIELD_LAT)
public float latitude;
@SyncanoField(name = FIELD_LNG)
public float longitutde;
@SyncanoField(name = FIELD_ALT)
public float altitude;
@SyncanoField(name = FIELD_X)
public float force_x;
@SyncanoField(name = FIELD_Y)
public float force_y;
@SyncanoField(name = FIELD_Z)
public float force_z;
}
source
share