Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Android GPS Data & Position Java

    Android GPS auslesen

    Alex @ AEQ-WEB

    Auf dieser Seite zeigen wir, wie man unter Android auf das GPS zugreifen kann und mit den Daten arbeitet. Die App prüft, ob die Berechtigungen für die Ortungsdienste gegeben sind. Wenn ja, so wird die Position bestimmt. Wird der Refresh-Button betätigt, so wird "onLocationChanged" aufgerufen. Diese Funktion wird übrigens auch automatisch aufgerufen, wenn Android merkt, dass sich die Position ändert. Die App versucht auch, den Namen der Ortschaft, in der man sich zurzeit befindet zu ermitteln.

    Verfügbare Parameter

    • Latitude (Geographische Breite)
    • Longitude (Geographische Länge)
    • Locality (Name der Ortschaft)
    • Speed (Geschwindigkeit in m/s)
    • Altitude (Seehöhe in Meter)
    • Satellites (Anzahl der Satelliten)

    Werbung:

    GPS_Info.apk
    Download
    GPS_Info Source
    Download

    Zuerst muss in der Manifest die Berechtigung für den GPS-Zugriff definiert werden:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    Anschließend wird der Code in die MainActivity kopiert:

    
    package aeqweb.com.gpsinfo;
    
    import java.io.IOException;
    import java.util.Calendar;
    import java.util.List;
    import java.util.Locale;
    import android.app.Activity;
    import android.content.Context;
    import android.content.pm.ActivityInfo;
    import android.content.pm.PackageManager;
    import android.graphics.Color;
    import android.location.Address;
    import android.location.Geocoder;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.support.v4.content.ContextCompat;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity
            implements OnClickListener {
    
        private LocationManager locationMangaer = null;
        private LocationListener locationListener = null;
        private Button btnGetLocation = null;
        private TextView v_longitude = null;
        private TextView v_latitude = null;
        private TextView v_location = null;
        private TextView v_speed = null;
        private TextView v_altitude = null;
        private TextView v_sat = null;
        private TextView v_gps_status = null;
        private TextView v_update_status = null;
        String longitude = "";
        String latitude = "";
        String location = "";
        String speed = "";
        String altitude = "";
        String sat_nr = "";
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //portrait mode
            v_longitude = (TextView) findViewById(R.id.Lon_view);
            v_latitude = (TextView) findViewById(R.id.Lat_view);
            v_location = (TextView) findViewById(R.id.Loc_view);
            v_speed = (TextView) findViewById(R.id.Spd_view);
            v_altitude = (TextView) findViewById(R.id.Alt_view);
            v_sat = (TextView) findViewById(R.id.Sat_view);
            v_gps_status = (TextView) findViewById(R.id.Gps_status);
            v_update_status = (TextView) findViewById(R.id.Update_status);
    
            btnGetLocation = (Button) findViewById(R.id.button);
            btnGetLocation.setOnClickListener(this);
            locationMangaer = (LocationManager)
                    getSystemService(Context.LOCATION_SERVICE);
        }
    
        @Override
        public void onClick(View v) {
            //Check if GPS is enabled
            locationListener = new APPLocationListener();
            if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) ==
                    PackageManager.PERMISSION_GRANTED) {
                v_gps_status.setText("Wait for signal");
                v_gps_status.setTextColor(Color.parseColor("#0066ff"));
                locationMangaer.requestLocationUpdates(LocationManager
                        .GPS_PROVIDER, 5000, 10, locationListener);
            } else {
                v_gps_status.setText("No GPS-Access!!!");
                v_gps_status.setTextColor(Color.parseColor("#ff0000"));
            }
        }
    
        private class APPLocationListener implements LocationListener {
            @Override
            public void onLocationChanged(Location loc) {
                //Try to get city name
                String city_name = null;
                Geocoder gcd = new Geocoder(getBaseContext(),
                        Locale.getDefault());
                List
    addresses; try { addresses = gcd.getFromLocation(loc.getLatitude(), loc .getLongitude(), 1); if (addresses.size() > 0) city_name = addresses.get(0).getLocality(); } catch (IOException e) { city_name = "unknown"; e.printStackTrace(); } latitude = "" + loc.getLatitude(); //Get latitude longitude = "" + loc.getLongitude(); //Get longitude location = "" + city_name; //Get city name speed = "" + loc.getSpeed() + " m/s"; //Get speed in meters per second altitude = "" + loc.getAltitude() + " m"; //Get height in meters sat_nr = "" + loc.getExtras().getInt("satellites"); //available satellites v_latitude.setText(latitude); v_longitude.setText(longitude); v_location.setText(location); v_speed.setText(speed); v_altitude.setText(altitude); v_sat.setText(sat_nr); v_gps_status.setText("GPS working"); v_gps_status.setTextColor(Color.parseColor("#33cc33")); Calendar c = Calendar.getInstance(); //Get time on system v_update_status.setText("Last update: " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND)); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } } }


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Android HTTP Request - Async Task

    Android HTTP Request

    • DE/EN

    Auf dieser Seite zeigen wir, wie unter Android ein asynchroner HTTP/HTTPS Request gestartet wird und mittels Task verarbeitet wird.

    Weiterlesen
    Android GPS Data & Position Java

    Android GPS auslesen

    • DE/EN

    Auf dieser Seite zeigen wir, wie mit Android die GPS-Position, Geschwindigkeit & Seehöhe sowie der Name der Ortschaft ermittelt werden kann.

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden