{ | |||||
"overview" : { | |||||
"IDG1" : { | |||||
"amplitude" : 1001, | |||||
"breitengrad" : 49.5, | |||||
"ip" : "10.00.00.001", | |||||
"laengengrad" : 11.5, | |||||
"timestamp" : 1113456789, | |||||
"vibration" : true | |||||
}, | |||||
"IDG2" : { | |||||
"amplitude" : 200, | |||||
"breitengrad" : 40.70064147511923, | |||||
"ip" : "20.00.00.000", | |||||
"laengengrad" : -73.99376799797778, | |||||
"timestamp" : 1203456789, | |||||
"vibration" : false | |||||
}, | |||||
"IDG3" : { | |||||
"amplitude" : 30, | |||||
"breitengrad" : -33.93157129193122, | |||||
"ip" : "30.00.00.000", | |||||
"laengengrad" : 18.39666975233824, | |||||
"timestamp" : 1303456789, | |||||
"vibration" : false | |||||
}, | |||||
"IDG4" : { | |||||
"amplitude" : 4, | |||||
"breitengrad" : -33.40763257191139, | |||||
"ip" : "40.00.00.000", | |||||
"laengengrad" : -70.61870273653996, | |||||
"timestamp" : 1403456789, | |||||
"vibration" : false | |||||
} | |||||
} | |||||
} |
implementation 'androidx.constraintlayout:constraintlayout:2.0.4' | implementation 'androidx.constraintlayout:constraintlayout:2.0.4' | ||||
implementation 'com.google.android.gms:play-services-maps:17.0.1' | implementation 'com.google.android.gms:play-services-maps:17.0.1' | ||||
implementation 'com.google.firebase:firebase-database:20.0.0' | implementation 'com.google.firebase:firebase-database:20.0.0' | ||||
implementation 'com.google.firebase:firebase-functions:20.0.0' | |||||
testImplementation 'junit:junit:4.+' | testImplementation 'junit:junit:4.+' | ||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2' | androidTestImplementation 'androidx.test.ext:junit:1.1.2' | ||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' |
{ | { | ||||
"project_info": { | "project_info": { | ||||
"project_number": "1097743535942", | |||||
"firebase_url": "https://arontestprojekt-default-rtdb.europe-west1.firebasedatabase.app", | |||||
"project_id": "arontestprojekt", | |||||
"storage_bucket": "arontestprojekt.appspot.com" | |||||
"project_number": "957720376634", | |||||
"firebase_url": "https://schockwelle-mdt5-g1-default-rtdb.europe-west1.firebasedatabase.app", | |||||
"project_id": "schockwelle-mdt5-g1", | |||||
"storage_bucket": "schockwelle-mdt5-g1.appspot.com" | |||||
}, | }, | ||||
"client": [ | "client": [ | ||||
{ | { | ||||
"client_info": { | "client_info": { | ||||
"mobilesdk_app_id": "1:1097743535942:android:527888c66e66b847d29f47", | |||||
"android_client_info": { | |||||
"package_name": "com.example.myapplication1fb" | |||||
} | |||||
}, | |||||
"oauth_client": [ | |||||
{ | |||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_type": 3 | |||||
} | |||||
], | |||||
"api_key": [ | |||||
{ | |||||
"current_key": "AIzaSyCwR1_JUNHQznkwcDjx5mngPJuqktBKFeM" | |||||
} | |||||
], | |||||
"services": { | |||||
"appinvite_service": { | |||||
"other_platform_oauth_client": [ | |||||
{ | |||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_type": 3 | |||||
} | |||||
] | |||||
} | |||||
} | |||||
}, | |||||
{ | |||||
"client_info": { | |||||
"mobilesdk_app_id": "1:1097743535942:android:fba2ee9540898b84d29f47", | |||||
"android_client_info": { | |||||
"package_name": "com.example.myapplicationf2" | |||||
} | |||||
}, | |||||
"oauth_client": [ | |||||
{ | |||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_type": 3 | |||||
} | |||||
], | |||||
"api_key": [ | |||||
{ | |||||
"current_key": "AIzaSyCwR1_JUNHQznkwcDjx5mngPJuqktBKFeM" | |||||
} | |||||
], | |||||
"services": { | |||||
"appinvite_service": { | |||||
"other_platform_oauth_client": [ | |||||
{ | |||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_type": 3 | |||||
} | |||||
] | |||||
} | |||||
} | |||||
}, | |||||
{ | |||||
"client_info": { | |||||
"mobilesdk_app_id": "1:1097743535942:android:34888690bd5c9564d29f47", | |||||
"mobilesdk_app_id": "1:957720376634:android:fdc03f689ff71b2f70cc03", | |||||
"android_client_info": { | "android_client_info": { | ||||
"package_name": "de.edotzlaff.schockwelle" | "package_name": "de.edotzlaff.schockwelle" | ||||
} | } | ||||
}, | }, | ||||
"oauth_client": [ | "oauth_client": [ | ||||
{ | { | ||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_id": "957720376634-gvj86hvfrnt5npvqfbsb8lnu77fgaumh.apps.googleusercontent.com", | |||||
"client_type": 3 | "client_type": 3 | ||||
} | } | ||||
], | ], | ||||
"api_key": [ | "api_key": [ | ||||
{ | { | ||||
"current_key": "AIzaSyCwR1_JUNHQznkwcDjx5mngPJuqktBKFeM" | |||||
"current_key": "AIzaSyDNnG6F_VIzKbu4r7QBqsUZ3z6ELFbgyuc" | |||||
} | } | ||||
], | ], | ||||
"services": { | "services": { | ||||
"appinvite_service": { | "appinvite_service": { | ||||
"other_platform_oauth_client": [ | "other_platform_oauth_client": [ | ||||
{ | { | ||||
"client_id": "1097743535942-ajbqq8gjc565pj2c2j5qtlskoskevf6o.apps.googleusercontent.com", | |||||
"client_id": "957720376634-gvj86hvfrnt5npvqfbsb8lnu77fgaumh.apps.googleusercontent.com", | |||||
"client_type": 3 | "client_type": 3 | ||||
} | } | ||||
] | ] |
private DatabaseReference mDatenbank; | private DatabaseReference mDatenbank; | ||||
Date currentTime; | |||||
//Date currentTime; //Workaround für Crash: currentTime nicht als Datum sondern als Long zeitstempel | |||||
Long currentTime; | |||||
Location currentLocation; | Location currentLocation; | ||||
private double breitengrad; | private double breitengrad; | ||||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
setContentView(R.layout.activity_earthquake_maps); | setContentView(R.layout.activity_earthquake_maps); | ||||
//getDataBaseValues(); //TODO Edward: Nur als Anmerkung, diese Methode erfolgt damit deine Methode getDeviceLocation Koordinaten aus der DB bekommt | |||||
getDataBaseValues(); //TODO Edward: Nur als Anmerkung, diese Methode erfolgt damit deine Methode getDeviceLocation rechtzeitig Koordinaten aus der DB bekommt | |||||
//TODO Hast schon echt viel erledigt :D Ich habe gedacht das die Class EarthquakeMapsActivity Daten an die DB schickt und die SensorMapsActivity die Daten bekommt, ich glaub die Funktion muss in die andere Class | //TODO Hast schon echt viel erledigt :D Ich habe gedacht das die Class EarthquakeMapsActivity Daten an die DB schickt und die SensorMapsActivity die Daten bekommt, ich glaub die Funktion muss in die andere Class | ||||
getLocationPermission(); | getLocationPermission(); | ||||
} | } | ||||
public void onComplete(@NonNull Task task) { | public void onComplete(@NonNull Task task) { | ||||
if (task.isSuccessful()){ | if (task.isSuccessful()){ | ||||
currentLocation = (Location) task.getResult(); | currentLocation = (Location) task.getResult(); | ||||
currentTime = Calendar.getInstance().getTime(); | |||||
//currentTime = Calendar.getInstance().getTime(); //Workaround für Crash: currentTime nicht als Datum sondern als Long zeitstempel | |||||
currentTime = Calendar.getInstance().getTimeInMillis(); | |||||
Toast.makeText(EarthquakeMapsActivity.this, currentTime.toString(), Toast.LENGTH_SHORT).show(); | Toast.makeText(EarthquakeMapsActivity.this, currentTime.toString(), Toast.LENGTH_SHORT).show(); | ||||
//currentLocation.setLatitude(breitengrad); //Hier werden beispielweise Koordinaten aus der Datenbank verwendet für Gerät IDG1 | |||||
//currentLocation.setLongitude(laengengrad); //Hier werden beispielweise Koordinaten aus der Datenbank verwendet für Gerät IDG1 | |||||
//setDataBaseValues(); //TODO Aron: Sobald ich die Funktion aufrufen will crashed die APP | |||||
currentLocation.setLatitude(breitengrad); | |||||
currentLocation.setLongitude(laengengrad); | |||||
setDataBaseValues(); //TODO Edward: Die Funktion geht jetzt. Statt Datum wird Unix Zeitstempel als Long Typ verwendet | |||||
moveCamera(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()),15f); | moveCamera(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()),15f); | ||||
} | } | ||||
else{ | else{ | ||||
mDatenbank = FirebaseDatabase.getInstance().getReference(); | mDatenbank = FirebaseDatabase.getInstance().getReference(); | ||||
mDatenbank.child("overview").child("IDG1").child("ip").setValue("10.00.00.001"); | mDatenbank.child("overview").child("IDG1").child("ip").setValue("10.00.00.001"); | ||||
mDatenbank.child("overview").child("IDG1").child("vibration").setValue(true); | mDatenbank.child("overview").child("IDG1").child("vibration").setValue(true); | ||||
mDatenbank.child("overview").child("IDG1").child("timestamp").setValue(currentTime.toString()); //aktueller Zeitstempel wird in Datenbank eingetragen | |||||
mDatenbank.child("overview").child("IDG1").child("timestamp").setValue(currentTime); //aktueller Zeitstempel wird in Datenbank eingetragen | |||||
mDatenbank.child("overview").child("IDG1").child("breitengrad").setValue(currentLocation.getLatitude()); //aktueller Breitengrad | mDatenbank.child("overview").child("IDG1").child("breitengrad").setValue(currentLocation.getLatitude()); //aktueller Breitengrad | ||||
mDatenbank.child("overview").child("IDG1").child("laengengrad").setValue(currentLocation.getLongitude()); //aktueller Längergrad | mDatenbank.child("overview").child("IDG1").child("laengengrad").setValue(currentLocation.getLongitude()); //aktueller Längergrad | ||||
mDatenbank.child("overview").child("IDG1").child("amplitude").setValue(1001); | mDatenbank.child("overview").child("IDG1").child("amplitude").setValue(1001); |
public void deviceInitDataBase() | public void deviceInitDataBase() | ||||
{ | { | ||||
mDatenbank = FirebaseDatabase.getInstance().getReference(); | mDatenbank = FirebaseDatabase.getInstance().getReference(); | ||||
Devices d1 = new Devices("10.00.00.000", false, 1103456789, 49.45470362290784, 11.151032510281498, 1000); | |||||
Devices d2 = new Devices("20.00.00.000", false, 1203456789, 40.70064147511923, -73.993767997977787, 200); | |||||
Devices d3 = new Devices("30.00.00.000", false, 1303456789, -33.93157129193122, 18.39666975233824, 30); | |||||
Devices d4 = new Devices("40.00.00.000", false, 1403456789, -33.40763257191139, -70.61870273653996, 4); | |||||
Devices d1 = new Devices("10.00.00.000", false, 1623926431100L, 49.45470362290784, 11.151032510281498, 1000); | |||||
Devices d2 = new Devices("20.00.00.000", false, 1623926431200L, 40.70064147511923, -73.993767997977787, 200); | |||||
Devices d3 = new Devices("30.00.00.000", false, 1623926431300L, -33.93157129193122, 18.39666975233824, 30); | |||||
Devices d4 = new Devices("40.00.00.000", false, 1623926431400L, -33.40763257191139, -70.61870273653996, 4); | |||||
mDatenbank.child("overview").child("IDG1").setValue(d1); | mDatenbank.child("overview").child("IDG1").setValue(d1); | ||||
mDatenbank.child("overview").child("IDG2").setValue(d2); | mDatenbank.child("overview").child("IDG2").setValue(d2); | ||||
mDatenbank.child("overview").child("IDG3").setValue(d3); | mDatenbank.child("overview").child("IDG3").setValue(d3); | ||||
mDatenbank.addValueEventListener(new ValueEventListener() { | mDatenbank.addValueEventListener(new ValueEventListener() { | ||||
@Override | @Override | ||||
public void onDataChange(@NonNull DataSnapshot snapshot) { | public void onDataChange(@NonNull DataSnapshot snapshot) { | ||||
processDataBaseValues(snapshot); //Daten - Snapshot, Übergabe an Methode DataChangeProtocol | |||||
processDataBaseValues(snapshot); //Daten - Snapshot, Übergabe an Methode processDataBaseValues | |||||
} | } | ||||
@Override | @Override | ||||
public void onCancelled(@NonNull DatabaseError error) { | public void onCancelled(@NonNull DatabaseError error) { |
getLocationPermission(); //Zuerst werden die aktuellen Standortdaten ermittelt | getLocationPermission(); //Zuerst werden die aktuellen Standortdaten ermittelt | ||||
//getDataBaseValues(); // Hier werden die Daten von der DB abgefragt //TODO Aron: sobald die Methode aufgerufen wird crashed die APP | |||||
getDataBaseValues(); // Hier werden die Daten von der DB abgefragt //TODO Edward: Geht wieder :D | |||||
//distance(currentLocation.getLatitude(), currentLocation.getLongitude(),breitengrad,laengengrad); //Übergabe zur Berechnung der Distanz zwischen Auslöser und aktuellem Standort | //distance(currentLocation.getLatitude(), currentLocation.getLongitude(),breitengrad,laengengrad); //Übergabe zur Berechnung der Distanz zwischen Auslöser und aktuellem Standort | ||||
mDatenbank.addValueEventListener(new ValueEventListener() { | mDatenbank.addValueEventListener(new ValueEventListener() { | ||||
@Override | @Override | ||||
public void onDataChange(@NonNull DataSnapshot snapshot) { | public void onDataChange(@NonNull DataSnapshot snapshot) { | ||||
processDataBaseValues(snapshot); //Daten - Snapshot, Übergabe an Methode DataChangeProtocol | |||||
processDataBaseValues(snapshot); | |||||
} | } | ||||
@Override | @Override | ||||
public void onCancelled(@NonNull DatabaseError error) { | public void onCancelled(@NonNull DatabaseError error) { | ||||
return distanceInMeters; | return distanceInMeters; | ||||
} | } | ||||
} | } |
#Mon Jun 14 19:58:23 CEST 2021 | |||||
#Thu Jun 17 12:39:35 CEST 2021 | |||||
distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||
distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||
zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||
zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip | |||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip |