Я новичок здесь ... я хотел бы знать, возможно ли мое дело, потому что у меня нет справки о том, как это сделать ....
на моем помощнике по базе данных:
public boolean saveLocationToLocalDatabase(String serialNumber, String
latitude, String longitude, String dateTime, String speed, String
port, SQLiteDatabase db)
{
ContentValues contentValues = new ContentValues();
contentValues.put(SERIALNUMBER, serialNumber);
contentValues.put(LATITUDE, latitude);
contentValues.put(LONGITUDE, longitude);
contentValues.put(DATE_TIME, dateTime);
contentValues.put(SPEED, speed);
contentValues.put(PORT, port);
long locationResult=db.insert(TABLE_FLEET_LOCATION, null,
contentValues);
if (locationResult == -1)
return false;
else
return true;
}
это мой onclicklistener и получение моих данных для извлечения из моей базы данных sqlite.
locate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick( View view) {
mMap.setOnMyLocationChangeListener(new
GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
CameraUpdate center = CameraUpdateFactory.newLatLng(new
LatLng(location.getLatitude(), location.getLongitude()));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(15);
mMap.clear();
MarkerOptions mp = new MarkerOptions();
mp.position(new LatLng(location.getLatitude(),
location.getLongitude()));
mp.title("");
mMap.addMarker(mp);
mMap.moveCamera(center);
mMap.animateCamera(zoom);
String gg =Settings.Secure.getString(getApplicationContext()
.getContentResolver(),Settings.Secure.ANDROID_ID);
lat = Double.toString(location.getLatitude());
lon = Double.toString(location.getLongitude());
well = String.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
java.util.Locale.getDefault()).format(new java.util.Date()));
speed="0000";
port="9090";
}
это мое сохранение данных в моей базе данных:
DatabaseHelper databaseHelper = new
DatabaseHelper(getApplicationContext());
SQLiteDatabase db = databaseHelper.getWritableDatabase();
boolean accepted = databaseHelper.saveLocationToLocalDatabase(gg,lat,
lon, well,speed,port, db);
if (accepted == true)
Log.w("Data Entered:","MAIN");
}
, если я нахожусь на моемdata: это мой пример поля в моей базе данных sqlite: note: если вы заметили, что я сохранял 5 данных перед изменением данных, потому что, поскольку данные я хотел бы сохранять их каждую секунду перед извлечением других данных.
и это мой случай, возможно ли это сделать? "Мне нравится получать все данные и создавать их все с помощью объекта json и отправлять в API с помощью модернизации"
кстати, мой последний код получал только те данные, которые я получал только из моего прослушивателя onclick, но мне нравится делать это другим способом (сохраняя данные, такие как 5-10 данных, и отправляя их все в api).через модификацию) для моих сообщений об ошибках.
предыдущий код модификации: private void sendAllToApi () {
MapDetails mapDetails = new MapDetails(gg, lat, lon,
well, "0", portInts); //Data ive get once ive pressed
onclicklistener
List<MapDetails> data = new ArrayList<>();
data.add(mapDetails);
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://" + ADDRESS + ":" + PORT)//this
is my configuration for api link
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
Api locate = retrofit.create(Api.class);
Call<MapDetails> call = locate.mapDetailLocation(data);
call.enqueue(new Callback<MapDetails>() {
@Override
public void onResponse(Call<MapDetails> call,
Response<MapDetails> response) {
Snackbar.make(view, "" + response,
Snackbar.LENGTH_INDEFINITE)
.setAction("Action", null).show();
}
@Override
public void onFailure(Call call, Throwable t) {
Snackbar.make(view, "" + t.getMessage(),
Snackbar.LENGTH_INDEFINITE)
.setAction("Action", null).show();
}
});
}