android 模拟器上GPS的使用
2012-08-15 19:25
381 查看
Java代码:
xml代码:
加上权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
GPS数据模拟方法:
打开DDMS视图,找到Emulator Control,在Manual里面选择Sexagesimal,输入Longitude和Latitude,点击Send.至此完成测试.
package test.GPS; import android.app.Activity; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class TestGPSActivity extends Activity { private static final String TAG = "GPSTestActivity"; private Location preLocation; private long preTime; private static final int step = 2000; // msecs private LocationManager locationManager; private boolean status = false; private Button btn; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "onCreate(Bundle savedInstanceState)"); btn = (Button) findViewById(R.id.beginBtn); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (!status) { status = true; startLoactionService(); btn.setText("点击这里停止"); } else { status = false; stopLocationService(); btn.setText("点击这里开始"); } } }); } public void startLoactionService() { String serviceName = Context.LOCATION_SERVICE; locationManager = (LocationManager) getSystemService(serviceName); // String provider = LocationManager.GPS_PROVIDER; Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); String provider = locationManager.getBestProvider(criteria, true); Log.i(TAG, "we choose:"+provider); Location location = locationManager.getLastKnownLocation(provider); Log.i(TAG, "we :"+location); preTime = System.currentTimeMillis(); updateWithNewLocation(location); locationManager.requestLocationUpdates(provider, step, 0, locationListener); } public void stopLocationService() { if (locationManager != null) { locationManager.removeUpdates(locationListener); } } private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { Log.i(TAG, "onLocationChanged(Location location)"); updateWithNewLocation(location); } public void onProviderDisabled(String provider) { updateWithNewLocation(null); } public void onProviderEnabled(String provider) { } public void onStatusChanged(String provider, int status, Bundle extras) { } }; private void updateWithNewLocation(Location location) { Log.i(TAG, "updateWithNewLocation(Location location)"); String latLongString; TextView myLocationText; myLocationText = (TextView) findViewById(R.id.result); if (location != null) { double lat = location.getLatitude(); double lng = location.getLongitude(); long subTime = (System.currentTimeMillis() - preTime) / 1000; float v = (subTime == 0 || preLocation == null) ? 0 : (preLocation .distanceTo(location) / subTime); latLongString = "纬度:" + lat + " 经度:" + lng + " 速度:" + v + " m/s , " + v * 3.6 + " km/h"; preLocation = location; preTime = System.currentTimeMillis(); } else { latLongString = "无法获取地理信息"; } myLocationText.setText(System.currentTimeMillis() + ": " + latLongString); } }
xml代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/beginBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="start" /> <TextView android:id="@+id/result" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="data" /> </LinearLayout>
加上权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
GPS数据模拟方法:
打开DDMS视图,找到Emulator Control,在Manual里面选择Sexagesimal,输入Longitude和Latitude,点击Send.至此完成测试.
相关文章推荐
- Android 模拟器使用:Telnet登入模拟器模拟GPS,SMS,电话
- android 模拟器上GPS的使用
- Android 模拟器的上使用GPS的bug
- android使用GPS定位及在googlemap添加标记
- Android深入浅出系列之Android工具的使用—模拟器(一)
- Android x86模拟器配置与使用方法
- Ubuntu上使用android4.0.3模拟器实现JNI例子
- 使用android超强模拟器Genymotion
- 【android】使用部分模拟器出现兼容问题Error inflating class EditText
- [置顶] Android GPS使用
- Android无网络状态下使用GPS定位到省市县的一种简单实现方式
- android 模拟器使用SDcard
- android下 gps的使用
- 使用 Intel HAXM 为 Android 模拟器加速,媲美真机
- 通过CMD命令行创建和使用Android 模拟器 AVD
- android 模拟器 使用SD卡
- Android 模拟器下使用虚拟摄像头
- 第三讲:Android模拟器的使用
- Android教程之Android SDK1.5模拟器使用命令
- 22、Android之 使用手机的 GPS 功能