2011-08-04 48 views
0

我尝试在模拟器中运行这段代码:为什么这个GPS相关的Android代码不起作用?

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”和“地理修复”发送GPS数据,但没有任何发生。有时模拟器只是关闭。有人知道该代码有什么问题吗?谢谢你的帮助。

+0

发布错误或异常。你是什​​么意思“它只是不运行”?这是否意味着它不会启动?或者有错误或异常? – Jack

+0

我很困惑,只是测试了你的代码,它工作正常! – iDroid

回答

2

我没有看到任何代码错误。您是否在模拟器上启用了GPS?你有没有检查logcat的错误?

+0

我也有同样的问题,我使用相同的代码,但它不wrking me.also我已经添加gps支持emulator.please告诉我还有什么我需要做? – Shruti

1

如果您使用的是Google地图级别8 API以上的模拟器,则在使用geo fix传递地点时会遇到问题。你使用什么类型?

1

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

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

+0

是的,它可以:使用telnet localhost 5554和传递参数与地理修复。例如:geo fix 25.3 27.1 – 2011-08-04 13:14:21

+0

我们可以通过DDMS的静态点吗? – anddev

+0

你可以去模拟器控制 - >位置控制 - >手动 – 2011-08-04 13:20:02

相关问题