2012-05-18 91 views
0

我測試發送座標Android模擬器的選擇使用內置在Eclipse tool.But它似乎並沒有收到他們。我有這個簡單的代碼:位置發送到仿真

public class Main extends MapActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    MapView view = (MapView) findViewById(R.id.themap); 
    view.setBuiltInZoomControls(true); 

    final MapController mp = view.getController(); 

    LocationManager manager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 

    LocationListener listener = new LocationListener() { 

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

     } 

     public void onProviderEnabled(String provider) { 
      // TODO Auto-generated method stub 

     } 

     public void onProviderDisabled(String provider) { 
      // TODO Auto-generated method stub 

     } 

     public void onLocationChanged(final Location location) { 
      // TODO Auto-generated method stub 
      mp.setCenter(new GeoPoint((int)location.getLatitude(), (int)location.getLongitude())); 

     } 
    }; 
    manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener); 

} 



@Override 
protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
} 
} 

我在Manifest中擁有ACCESS_FINE_LOCATION和INTERNET的權限。 如果有人有任何解釋,我將不勝感激。

+0

我不想給這個毯子的答案,但是,如果它不工作,你所做的是錯的問候模擬器。這可能不在你的代碼中。 – KevinDTimm

+0

什麼是可能的錯誤? – NiVeR

+0

不幸的是,我可以給你的最好建議是研究如何完成這項工作,並找出你偏離它的地方。此外,谷歌和SO搜索將提供大量的信息。 – KevinDTimm

回答

0

你有沒有在清單中添加

<uses-library android:name="com.google.android.maps" /> 

到應用程序標籤? 您還需要Google的SDK調試證書的MD5指紋才能接收Google地圖數據。你可以得到它here

嘗試在onLocationChanged方法內放置一個斷點,並查看它是否在將位置命令發送到模擬器時停止。當你還沒有證書時,這也應該起作用。

+0

它似乎並沒有停止在onLocationChanged ...任何想法,爲什麼? – NiVeR

+0

您是否爲模擬器添加了gps支持?轉到avd管理器並點擊avd上的編輯。然後在「硬件」部分添加gps支持條目。 當您將位置數據發送到模擬器時,您應該在通知欄中看到gps圖標。 – Christoph

+0

我看到那個圖標,但位置不變:( – NiVeR

0

這適用於我。

監聽器實現...

public class MyLocationListener implements LocationListener { 
    public static final String TAG = "MyLocationListener"; 

    private Context context; 

    public MyLocationListener(Context c) { 
     this.context = c; 
    } 

public void onLocationChanged(android.location.Location location) { 
     Log.d(TAG,"LocationChanged: Lat: "+location.getLatitude()+" Lng: "+location.getLongitude()); 
    } 
} 

用法......

MyLocationListener locationListener = new MyLocationListener(this); 
// Acquire a reference to the system Location Manager 
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
// Register the listener with the Location Manager to receive location updates 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);