Location Tracker

This commit is contained in:
developerraman
2020-12-14 14:02:48 +05:30
parent c3573aac6c
commit ac0adddfd9
5 changed files with 284 additions and 42 deletions

View File

@@ -3,6 +3,11 @@
package="in.sminnovations.arrest_tb">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"

View File

@@ -51,9 +51,10 @@ import de.hdodenhof.circleimageview.CircleImageView;
public class AddImage extends NavigationTop {
String string1,string2,string3,string4,string5,string6,string7,string8,string9,number;
String string1,string2,string3,string4,string5,string6,string7,string8,string9,number,logi,lati;
private Button nosave;
String address;
CircleImageView circle_image;
@@ -114,6 +115,12 @@ public class AddImage extends NavigationTop {
string3 = preferences.getString("patientage", null);
string4 = preferences.getString("patientnikshayid", null);
string5 = preferences.getString("dob", null);
lati=preferences.getString("latitude", null);
logi=preferences.getString("longitude", null);
address="latitude "+lati+" longitude "+logi;
Log.e("main", "error "+address);
if (string5== null ) {
@@ -283,35 +290,35 @@ public class AddImage extends NavigationTop {
private void ValidateProductData()
{
if (!isOnline()) {
//Create an alertdialog
AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(AddImage.this);
Checkbuilder.setTitle("No Internet Connection !");
Checkbuilder.setMessage("Check Your Internet Connection.");
//Builder Retry Button
if (!isOnline()) {
//Create an alertdialog
AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(AddImage.this);
Checkbuilder.setTitle("No Internet Connection !");
Checkbuilder.setMessage("Check Your Internet Connection.");
//Builder Retry Button
Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dialog.cancel();
}
});
Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
AlertDialog alert = Checkbuilder.create();
alert.show();
AlertDialog alert = Checkbuilder.create();
alert.show();
}
else {
StoreProductInformation();
}
}
else {
StoreProductInformation();
}
}
private void StoreProductInformation()
@@ -426,6 +433,7 @@ public class AddImage extends NavigationTop {
productMap.put("National_Id", string4);
productMap.put("Dob", string5);
productMap.put("sdate",saveCurrentDate );
productMap.put("address",address );

View File

@@ -0,0 +1,219 @@
package in.sminnovations.arrest_tb;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;
import androidx.core.app.ActivityCompat;
class GpsTracker extends Service implements LocationListener {
private final Context mContext;
// flag for GPS status
boolean isGPSEnabled = false;
// flag for network status
boolean isNetworkEnabled = false;
// flag for GPS status
boolean canGetLocation = false;
Location location; // location
double latitude; // latitude
double longitude; // longitude
// The minimum distance to change Updates in meters
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
// The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute
// Declaring a Location Manager
protected LocationManager locationManager;
public GpsTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// getting network status
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
// First get location from Network Provider
if (isNetworkEnabled) {
//check the network permission
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 101);
}
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
//check the network permission
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 101);
}
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
/**
* Stop using GPS listener
* Calling this function will stop using GPS in your app
* */
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(GpsTracker.this);
}
}
/**
* Function to get latitude
* */
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}
// return latitude
return latitude;
}
/**
* Function to get longitude
* */
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}
// return longitude
return longitude;
}
/**
* Function to check GPS/wifi enabled
* @return boolean
* */
public boolean canGetLocation() {
return this.canGetLocation;
}
/**
* Function to show settings alert dialog
* On pressing Settings button will lauch Settings Options
* */
public void showSettingsAlert(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);
// Setting Dialog Title
alertDialog.setTitle("GPS is settings");
// Setting Dialog Message
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
// On pressing Settings button
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
mContext.startActivity(intent);
}
});
// on pressing cancel button
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}

View File

@@ -2,7 +2,7 @@ package in.sminnovations.arrest_tb.Model;
public class Tests {
private String Lab_Number, SPIN_Tube_ID, Dob, Gender, Image, Patient_Age, Patient_Id, National_Id, Primary_Key, Sample_Type, Tube_Validity, date, Time, Result,sdate;
private String Lab_Number, SPIN_Tube_ID, Dob, Gender, Image, Patient_Age, Patient_Id, National_Id, Primary_Key, Sample_Type, Tube_Validity, date, Time, Result,sdate ,address;
@@ -11,6 +11,25 @@ public class Tests {
}
public Tests(String lab_Number, String SPIN_Tube_ID, String dob, String gender, String image, String patient_Age, String patient_Id, String national_Id, String primary_Key, String sample_Type, String tube_Validity, String date, String time, String result, String sdate, String address) {
Lab_Number = lab_Number;
this.SPIN_Tube_ID = SPIN_Tube_ID;
Dob = dob;
Gender = gender;
Image = image;
Patient_Age = patient_Age;
Patient_Id = patient_Id;
National_Id = national_Id;
Primary_Key = primary_Key;
Sample_Type = sample_Type;
Tube_Validity = tube_Validity;
this.date = date;
Time = time;
Result = result;
this.sdate = sdate;
this.address = address;
}
public String getLab_Number() {
return Lab_Number;
}
@@ -131,21 +150,11 @@ public class Tests {
this.sdate = sdate;
}
public Tests(String lab_Number, String SPIN_Tube_ID, String dob, String gender, String image, String patient_Age, String patient_Id, String national_Id, String primary_Key, String sample_Type, String tube_Validity, String date, String time, String result, String sdate) {
Lab_Number = lab_Number;
this.SPIN_Tube_ID = SPIN_Tube_ID;
Dob = dob;
Gender = gender;
Image = image;
Patient_Age = patient_Age;
Patient_Id = patient_Id;
National_Id = national_Id;
Primary_Key = primary_Key;
Sample_Type = sample_Type;
Tube_Validity = tube_Validity;
this.date = date;
Time = time;
Result = result;
this.sdate = sdate;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}

View File

@@ -21,6 +21,7 @@ import androidx.core.content.ContextCompat;
public class TestResult extends NavigationTop implements AdapterView.OnItemSelectedListener {
Button btnTest;
EditText NIRTLabd,SPINTubeIDd;
String NIRTLabde,SPINTubeIDde,validatyd,sampled;