0

我已经在模拟器中检查了主机 GPU 并尝试获取当前位置,但没有得到任何错误或结果。

这是我的代码。

package com.example.locationawareapp;

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.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    private TextView currentloc;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        currentloc = (TextView)findViewById(R.id.CurrentLocation);

        // Acquire a reference to the system Location Manager
        LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

        // Define a listener that responds to location updates
        LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
              // Called when a new location is found by the network location provider.
              makeUseOfNewLocation(location);
            }
            public void onStatusChanged(String provider, int status, Bundle extras) {}

            public void onProviderEnabled(String provider) {}

            public void onProviderDisabled(String provider) {}
          };

        // Register the listener with the Location Manager to receive location updates
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    }

    protected void makeUseOfNewLocation(Location location) {
        // TODO Auto-generated method stub

        currentloc.setText(new Double(location.getLatitude()).toString());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

任何人都可以帮助得到这个。我已经检查了一些现有的问题,但问题没有解决。

问候,
苏拉布

4

1 回答 1

0

我找到了答案:

让我分享我的理解,解释正在发生的事情,我们需要做什么以及为什么。

模拟器没有任何可以使用的内置 GPS 硬件,但 LocationManager 类及其方法实现将在收到位置信息时执行那里的任务。由于模拟器没有内置硬件,我们必须为在模拟器上运行的应用程序提供 Lat Lon。提供我们可以在命令行下方使用的位置信息

telnet localhost 5554 
geo fix <longitude value> <latitude value>

我还使用了一种简单的方法,即使用 eclipse UI 即插入 DDMS 功能来发送 GPS。在 Eclipse 中,转到窗口 > 打开透视图 > DDMS。在 DDMS 中,您会找到如下所示的图片 GPS 的 DDMS 屏幕截图

首先进入日食中的 DDMS 部分,然后打开模拟器控制 .... 转到手动部分设置纬度和经度,然后按发送按钮。

希望这会帮助你。

于 2013-07-22T14:09:20.900 回答