Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid - Error test get latitude and longitude in bootcomplete broadcastreceiver
    primarykey
    data
    text
    <p>i am testing my bootcomplete.java to get GPS coordinate (lat,long), when my system reboot, the message is sent out, but latitude and longitude showing 0.0.</p> <p>Is there anything wrong with my BootComplete.java or GPSTracker.java class ? i will post the code below.</p> <p><strong>BootComplete.java</strong></p> <pre><code>public class BootComplete extends BroadcastReceiver{ //private static final String PREFS_NAME = null; public static final String PREFS_NAME = "MyPrefs"; String storedSimSerial; String currentSimSerial; String email; //email address input by user, generate email and sent to this address String mobileno; //mobile number input by user, generate SMS and send to this address String sms; //generate sms to user GPSTracker gps; @Override public void onReceive(Context context, Intent intent) { SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, 0); storedSimSerial = prefs.getString("storedSimSerial", ""); mobileno = prefs.getString("trustedNum", ""); email = prefs.getString("Email", ""); TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE); currentSimSerial = tm.getSimSerialNumber(); if(currentSimSerial != null){ if(currentSimSerial.compareToIgnoreCase(storedSimSerial) == 0){ }else{ prefs = context.getApplicationContext().getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = prefs.edit(); gps=new GPSTracker(BootComplete.this); gps.getLatitude(); sms = "Alert!!!\nSim card changed.\nSim Serial Number:\n"+tm.getSimSerialNumber()+ "\nNetwork : "+ tm.getNetworkOperatorName()+"\nLatitude:\n" + gps.getLatitude(); editor.putBoolean("SimChangeMail", true); editor.putString("subjectSimChange", "Your Sim card has changed."); editor.putString("bodySimChange","Sim Serial Number is :\n"+tm.getSimSerialNumber()+"\n" + "This Sim serial number is unique and used to identify the owner.\nNetwork Operator is : "+ tm.getNetworkOperatorName()+ "\nThanks for using Mobile Security Application"); editor.putString("SimChangeSms", sms); editor.commit(); SmsManager sm = SmsManager.getDefault(); String num = mobileno; sm.sendTextMessage(num, null, sms, null, null); } }else{ } } } </code></pre> <p>Not sure is this part wrong ??</p> <pre><code> gps=new GPSTracker(BootComplete.this); gps.getLatitude(); </code></pre> <p><strong>GPSTracker.java</strong></p> <pre><code>public 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 GPSTracker(BootComplete bootComplete) { this.mContext = getBaseContext(); 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 &amp;&amp; !isNetworkEnabled) { // no network provider is enabled } else { this.canGetLocation = true; // First get location from Network Provider if (isNetworkEnabled) { 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) { 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(); } }); // Showing Alert Message 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; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload