2012-08-08 59 views
0
public class MyLocation { 
Context mContext; 
LocationManager mlocManager; 
LocationListener mlocListener; 
double lat=0,lng=0; 

public MyLocation(Context mContext) { 

    super(); 
    this.mContext = mContext; 
    mlocManager = (LocationManager)mContext.getSystemService(mContext.LOCATION_SERVICE); 
    mlocListener = new MyLocationListener(); 
    mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); 

} 
/* Class My Location Listener */ 
public class MyLocationListener implements LocationListener { 
    private static final int TWO_MINUTES = 1000 * 60 * 2; 


    public void onLocationChanged(Location loc) { 
     loc.getLatitude(); 
     loc.getLongitude(); 

     String Text = "My current location is: " +"Latitud = " + loc.getLatitude() +"Longitud = " + loc.getLongitude(); 
    // Toast.makeText(mContext,Text,Toast.LENGTH_SHORT).show(); 
     lat = loc.getLatitude(); 
     lng = loc.getLongitude(); 
    } 

    public void onProviderDisabled(String provider){ 
     Toast.makeText(mContext,"Gps Disabled",Toast.LENGTH_SHORT).show(); 
    } 

    public void onProviderEnabled(String provider){ 
     Toast.makeText(mContext," Gps Enabled" ,Toast.LENGTH_SHORT).show(); 
    } 

    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 

    } 
    } 
} 

這個類沒有返回它應該是什麼......我的位置永遠是0.0 0.0不知道該怎麼辦。這個類應該返回我的位置和實際返回0.0 0.0

我使用這個類像這樣

mylocation = new MyLocation(this);

我有GPS和網絡啓用時我啓動應用程序,所以這是沒有問題的......

+0

你有你的Manifest.xml正確的權限? – tolgap 2012-08-08 11:39:57

+0

您是否添加了獲取用戶位置的權限? http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATION和http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION – 2012-08-08 11:40:13

+0

如果您使用的是仿真器爲了測試這個功能,它將返回0.0,0.0。 – Midhu 2012-08-08 11:47:36

回答

1

嘗試去外面(我不這也意味着這一點)。有時候,GPS在室內沒有收到信號,所以你可能不得不在戶外的一個開闊的地方獲取實際的數據。如果GPS找不到信號,它將返回0.0,0.0。

編輯:另外,我注意到你不重寫任何的GPS方法。嘗試爲那些(即onLocationChanged,onProviderEnabled,onProviderDisabledonStatusChanged)添加@Override。這可能有幫助。

編輯2:如果仍然不能正常工作,請您手機的設置,然後在「位置&安全設置」(可能被命名爲設備之間略有不同),並確保「使用無線網絡」和「使用GPS衛星「都將被關閉。

編輯3:
這是自己的所有類,在@Override沒有錯誤:

import android.location.Location; 
import android.location.LocationListener; 
import android.os.Bundle; 

public class MyLocationListener implements LocationListener { 

    @Override 
    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 

    } 

    @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 

    } 

} 
+0

好!我會嘗試,我會等待一段時間! – exilonX 2012-08-08 11:56:29

+0

如果這不起作用,請嘗試剛添加到「編輯:」旁邊的部分。讓我知道這是否適合你。 – Mxyk 2012-08-08 12:00:46

+0

我去了外面沒有任何改變...嘗試編輯部分 – exilonX 2012-08-08 12:14:48