Android - 尝试在模拟器上测试GPS时出错

时间:2011-11-25 12:47:53

标签: android

我想测试一下在Android上使用GPS的简单简介。所以我写了一个简单的代码:

public class main extends Activity{
LocationManager mLocationManager;
TextView tv;
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    tv = (TextView)findViewById(R.id.myLocationText);
    mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    String locationprovider = mLocationManager.getBestProvider(criteria, true);
    Location mLocation = mLocationManager.getLastKnownLocation(locationprovider);

    tv.setText("Last location lat:" + mLocation.getLatitude() + "long:" + mLocation.getLongitude());
}

}

另外,在AndroidManifest上我添加了如下使用权限:

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

但是当我尝试在Android模拟器上运行时,我得到错误“意外停止”并关闭此应用程序。我也加入了DDMS的尝试。但我对这个错误一无所知。

4 个答案:

答案 0 :(得分:2)

我在实际设备中也遇到了类似的问题。听众接收新位置的频率太高,无法更新我的TextViev。我通过一些同步解决了它,如果当时正在刷新,则跳过View刷新。

在您的情况下,由于您没有使用听众,我会检查NullPointerExceptions

答案 1 :(得分:1)

您可能没有将Android API用于Android模拟器,这就是为什么您无法访问GoogleMapAPı并导致崩溃的原因。

选中此项以获取有关设置模拟器以供地图使用的更多信息。

http://code.google.com/android/add-ons/google-apis/maps-overview.html

答案 2 :(得分:1)

这是因为您在模拟器中使用它并且它没有任何与gps相关的硬件。

这是一个解决方案

从命令行发送模拟位置数据:

在Android模拟器中启动您的应用程序,并在SDK的/ tools目录中打开终端/控制台。 连接到模拟器控制台:

telnet localhost <console-port>

发送位置数据: geo fix发送固定的地理位置。 此命令接受十进制度的经度和纬度,以及米的可选高度。例如:

geo fix -121.45356 46.51119 4392

geo nmea发送NMEA 0183一句。 此命令接受单个“$ GPGGA”类型的NMEA语句(修复数据)或“$ GPRMC”(传输数据)。例如:

geo nmea $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62

来源:http://developer.android.com/guide/topics/location/obtaining-user-location.html

另见此链接:http://developer.android.com/guide/developing/devices/emulator.html#console

答案 3 :(得分:0)

这是API KEY个问题。您可以尝试在Google地图API密钥上申请新的API KEY 您的代码是正确的,没有显示任何错误。

也许这个答案可以帮助您解决问题。