我不能得到纬度;在我的模拟器中使用GPS经度

时间:2012-01-12 03:26:31

标签: android gps location

我已经定义了一个按下按钮获取当前位置的方法,当我第一次按下它时,它工作了。但是它没有任何回报给我。并且没有异常抛出

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());

3 个答案:

答案 0 :(得分: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"/>
你有没有提到这些权限?

答案 1 :(得分:0)

在myLocationListener类

你应该覆盖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());

    }

答案 2 :(得分:0)

您是否尝试在再次发送之前修改Eclipse中的位置?如果多次发送相同的位置,模拟器将不会触发位置事件。

此外,您必须在设备上启用模拟位置(在开发选项中的某个位置)和清单:

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