2012-01-12 69 views
1

我已經定義了一種通過按下按鈕來獲取當前位置的方法,當我第一次按下它時,它已經起作用了。但是它沒有任何回報給我。而沒有異常拋出我無法通過GPS在我的模擬器中獲取緯度和經度

public class getLoc extends Activity{ 
private Button btn; 
private TextView tv; 
private LocationManager locm; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    tv=(TextView) findViewById(R.id.location_text); 
    btn=(Button) findViewById(R.id.btn_location); 
    btn.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      locm=(LocationManager) getLoc.this.getSystemService(Context.LOCATION_SERVICE); 
      locm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new myLocationListener()); 
     } 
    }); 
} 
protected void getCurrentLocation(){ 
    Location loc=locm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    Toast.makeText(getApplication(), String.valueOf(loc.getLatitude()), Toast.LENGTH_SHORT).show(); 
    System.out.println(loc.getLatitude()); 
    System.out.println(loc.getLongitude()); 
+0

爲什麼你想它在模擬器?嘗試在真實的設備上。 – Lucifer 2012-01-12 03:36:01

+0

該代碼是否正常?我只有一個ZTE_U880.it的移動設備需要很長時間才能獲取位置信息。 – lanyimo 2012-01-12 03:39:58

+0

是的,代碼是好的,對不起,遲交回復 – Lucifer 2012-01-12 04:19:00

回答

0

你必須包括地圖API庫和看房權限清單文件

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

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

你提到這些權限?

在myLocationListener類

+0

謝謝第一次。我沒有在清單文件中添加此權限。但我使用'ACCESS_FINE_LOCATION',而不是'ACCESS_COARSE_LOCATUION'因爲我需要一個精確的位置信息。 – lanyimo 2012-01-12 04:14:27

0

你應該重寫onLocationChanged方法

 
     public void onLocationChanged(Location location) { 
     Toast.makeText(getApplication(), String.valueOf(location.getLatitude()), Toast.LENGTH_SHORT).show(); 
     System.out.println(location.getLatitude()); 
     System.out.println(location.getLongitude()); 

    } 
+0

是的,這裏不顯示。你也是中國人嗎?我想你的名字(accont名字)。 – lanyimo 2012-01-12 05:24:05

+0

是中文。 eclipse可以將GPS位置信息發送到仿真器,如果您使用真實設備,也許您應該修改gps.conf文件以更快獲取gps信息,google gps.conf。 – 2012-01-12 05:33:21

+0

是的。我可以通過覆蓋OnLocationChange方法來獲取latlng,但不能獲取由我自己定義的getCurrentLocation。 – lanyimo 2012-01-12 05:35:59

0

你再次嘗試發送它之前修改Eclipse中的位置?如果您多次發送相同的位置,模擬器將不會觸發位置事件。

你也需要啓用設備(在發展期權某處)上模擬地點和清單:

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission> 
+0

是的,我嘗試了很多次。 – lanyimo 2012-01-12 08:07:15