2012-03-29 18 views
0

UPDATE 2: Problem gelöstGalaxy Tab - Anwendung gets kein GPS-Standort auf Netzwerk oder passiven Anbieter

nachdem ich draußen war und bekam ein Signal mit dem GPS_PROVIDER, jetzt habe ich ein Problem nicht mehr einen Standort Fix zu erhalten mit dem NETWORK_PROVIDER ....

Ich weiß immer noch nicht, warum die Google Maps App war in der Lage, eine Korrektur zu bekommen, bevor ich das tat und meine App war nicht, aber jetzt funktioniert es (auch nach einem Neustart der Galaxy Tab) und ich bin irgendwie glücklich;)


UPDATE: Thread Titel Chang ed, siehe die Bearbeitung am Ende des Posts.

Ich habe gerade versucht dieses Tutorial (http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/) für einen GPS-Standort auf einer Galaxievorsprung bekommen, aber ich bekomme keine Lage ....

Ich habe bereits versucht, einen anderen Anbieter zu verwenden, aber dies nicht Hilfe überhaupt (Ich habe versucht, die GPS_PROVIDER, NETWORK_PROVIDER, PASSIVE_PROVIDER).

Das Merkwürdige ist, dass ich mit der offiziellen Google Maps App einen Standort bekomme. : \

die Berechtigungen in der AndroidManifest.xml sind wie folgt festgelegt:

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

weiß jemand, warum meine Bewerbung keinen Standort des get?

edit:

mit den GPS-Provider ich ein Update bekommen, wenn ich draußen bin. aber ich verstehe nicht, warum ich keinen Standort mit dem NETWORK_PROVIDER oder dem PASSIVE_PROVIDER bekomme.

Welchen Anbieter verwendet die Google Maps App, wenn das GPS nicht verfügbar ist?

bearbeitet 2:

der Code (es ist aus dem Tutorial oben mit einigen geringfügigen Änderungen):

package Firstdroid.Tutorial.Gps; 

import android.app.Activity; 
import android.content.Context; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.widget.Toast; 

public class UseGps extends Activity { 

    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) 

    { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 

     Toast.makeText(getApplicationContext(), "Application started", Toast.LENGTH_SHORT).show(); 

     /* Use the LocationManager class to obtain GPS locations */ 

     LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     LocationListener mlocListener = new MyLocationListener(); 

     // here I choose the location provider: 
     mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); // <--- 

    } 

    /* Class My Location Listener */ 

    public class MyLocationListener implements LocationListener { 

     @Override 
     public void onLocationChanged(Location loc) { 

      loc.getLatitude(); 

      loc.getLongitude(); 

      String Text = "My current location is: " + 

      "Latitude = " + loc.getLatitude() + 

      "Longitude = " + loc.getLongitude() + " (PROVIDER: " + loc.getProvider() + ")"; 

      Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 

     } 

     @Override 
     public void onProviderDisabled(String provider) { 

      Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 

     } 

     @Override 
     public void onProviderEnabled(String provider) { 

      Toast.makeText(getApplicationContext(), 

      "Gps Enabled", Toast.LENGTH_SHORT).show(); 

     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) { 

     } 

    }/* End of Class MyLocationListener */ 

}/* End of UseGps Activity */ 
+0

Konnten Sie Ihren Code bekanntgeben, wo Sie Ihren locationlistener usw. gründen? Außerdem müssen Sie nicht grob angeben, wenn Sie Geldstrafe anfordern; gut behandelt sowohl Netzwerk-und GPS-Anbieter. – Kevin

+0

Hallo, ich habe gerade deinen Kommentar gesehen. also funktioniert der GPS_PROVIDER, aber ich verstehe nicht, dass der NETWORK_PROVIDER oder der PASSIVE_PROVIDER nicht funktionieren. oh und ich werde den Code im ersten Beitrag hinzufügen. – LittleJohn

Antwort

0

Hat Ihr Galaxievorsprung ein 3G-Radio hat und auf einem Netzwerk verbunden ist? Wenn nicht, wird es nie einen Netzwerkproviderstandort bekommen.

Auch diese zwei zusätzlichen loc.getLatitude- und loc.getLongitude-Aufrufe brauchen Sie nicht oben, aber ich würde empfehlen, diese zu verwenden, um eine Variable festzulegen und die Variable in Ihrer Ausgabenachricht zu verwenden. Mit diesem können Sie jetzt einfach die GPSData.getLatitude() usw. aufrufen, um die benötigten Werte zu erhalten.

public class GPSData { 
    private static double latitude; 
    /** 
    * @return the latitude 
    */ 
    public static double getLatitude() { 
     return latitude; 
    } 

    /** 
    * @param latitude the latitude to set 
    */ 
    public static void setLatitude(double l) { 
     latitude = l; 
    } 

    private static double longitude; 
    /** 
    * @return the longitude 
    */ 
    public static double getLongitude() { 
     return longitude; 
    } 

    /** 
    * @param d the longitude to set 
    */ 
    public static void setLongitude(double d) { 
     longitude = d; 
    } 

    private static float accuracy; 
    /** 
    * @return the accuracy 
    */ 
    public static float getAccuracy() { 
     return accuracy; 
    } 

    /** 
    * @param f the accuracy to set 
    */ 
    public static void setAccuracy(float f) { 
     accuracy = f; 
    } 

    //Altitude is in feet 
    private static double altitude; 

    public static void setAltitude (double a) { 
     altitude = a; 
    } 

    public static double getAltitude() { 
     return altitude; 
    } 


    /** 
    * New location listener to be instantiated for getting locational data 
    * 
    */ 
    public static class MyLocationListener implements LocationListener { 
     public void onLocationChanged(Location location) { 
      setAccuracy(location.getAccuracy()); 
      setLongitude(location.getLongitude()); 
      setLatitude(location.getLatitude()); 
      //Altitude is in feet 
      setAltitude(location.getAltitude()); 
     } 

     @Override 
     public void onProviderDisabled(String provider) { 

     } 

     @Override 
     public void onProviderEnabled(String provider) { 

     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) { 

     } 
    } 
} 
+0

oh es hat überhaupt keine SIM-Karte. das einzige, was die lage bestimmt werden könnte, ist durch das wlan ich bin verbunden, glaube ich. wie ich schon sagte, würde mich das nicht so sehr überraschen, wenn die Google Maps App keinen Standort-Fix bekommen würde ...: \ – LittleJohn

+0

Das wäre dann warum. =) Bitte akzeptiere meine Antwort wenn du kannst, damit dies als gelöst markiert werden kann. – Kevin

+0

hi sry Ich kam accidendly auf ENTER und sendete meine Post zu früh;) Ich fügte etwas Text ... hinzu, also würde ich den Faden als gelöst markieren, aber für mich ist es gerade nicht gelöst, weil ich einen Standort auf Google erhalte Karten also muss es auch auf meiner App möglich sein oder nicht? – LittleJohn