在android模拟器中模拟gps位置。

时间:2011-05-03 07:47:27

标签: android android-emulator

当我尝试通过DDMS将模拟器gps协调发送到Android模拟器时,我遇到了一些问题。

我创建了一个非常简单的演示代码:

// gps.java

package com.trackingsolutions.gps;

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.util.Log;
import android.widget.Toast;

public class GPS extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {          
            String lat = String.valueOf(location.getLatitude());
                String lon = String.valueOf(location.getLongitude());
                Log.i("NOTIFICATION","onLocationChenged Triggered");
                Toast.makeText(GPS.this,"location changed: lat="+lat+", lon="+lon, Toast.LENGTH_LONG).show();            
            }
            public void onStatusChanged(String provider, int status, Bundle extras) {}
            public void onProviderEnabled(String provider) {}
            public void onProviderDisabled(String provider) {}
        };
        LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    }
}

我记得在AndroidManifest.xml上启用了对gps的访问:

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

当我尝试在模拟器上测试代码时,我打开了两个调试标记:

在设备标签上,我可以看到com.trackingsolutions.gps已启动并运行,我点击绿色符号使其激活以进行调试。

然后在仿真器控制标签上,我可以看到测试信息为:经度:-122.084095,纬度:37.422006。

这是我的问题,每次点击发送按钮,所有正在运行的进程都包含我的gps应用程序崩溃。锁定的感觉。

我尝试使用telnet发送gps修复程序,它仍然是相同的。

整天都很沮丧,有人能给我一些想法吗?非常感谢提前。

BTW,我选择的构建目标是:Google API,平台2.3.3,API级别10。

0 个答案:

没有答案