为什么这个与GPS相关的Android代码不起作用?

时间:2011-08-04 12:46:58

标签: android gps

我尝试在模拟器上运行此代码:

package andr.andr;

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.widget.Toast;

public class Gpstest2Activity extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    LocationListener mlocListener = new MyLocationListener();
    mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
public class MyLocationListener implements LocationListener
{
    public void onLocationChanged(Location loc)
    {
        loc.getLatitude();
        loc.getLongitude();
        String Text = "My current location is: " +
        "Latitud = " + loc.getLatitude() +
        "Longitud = " + loc.getLongitude();
        Toast.makeText( getApplicationContext(),Text,Toast.LENGTH_SHORT).show();
    }
    public void onProviderDisabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show();
    }
    public void onProviderEnabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
    }
    public void onStatusChanged(String provider, int status, Bundle extras)
    {
    }
}
}

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="andr.andr"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_LOCATION"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS"></uses-permission> 
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Gpstest2Activity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

我的问题是,这段代码不会运行。我尝试通过“DDMS”和“geo fix”发送gps数据,但没有任何事情发生。有时模拟器只是关闭。有谁知道该代码有什么问题?谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

我没有看到代码有任何问题。你在模拟器上启用了GPS吗?你有没有检查过logcat的错误?

答案 1 :(得分:1)

如果您使用的是高于Google Maps 8级API的模拟器,则使用geo fix传递位置时会遇到问题。你在用什么类型的?

答案 2 :(得分:1)

在设备中运行,然后检查是否显示相同的错误。如果是这样,那么更改您的代码,否则它将工作。我认为你的问题是你在模拟器中测试它。

模拟器无法使用GPS获取位置。