gps定位

来源:互联网 发布:mac 问号文件夹闪烁 编辑:程序博客网 时间:2024/05/01 00:13

1、代码实现:

import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {<span style="white-space:pre"></span>private TextView tv_mess;<span style="white-space:pre"></span>private LocationManager lm;<span style="white-space:pre"></span>private LocationListener listener;<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>protected void onCreate(Bundle savedInstanceState) {<span style="white-space:pre"></span>super.onCreate(savedInstanceState);<span style="white-space:pre"></span>setContentView(R.layout.activity_main);<span style="white-space:pre"></span>tv_mess = (TextView) findViewById(R.id.tv_gps_mess);<span style="white-space:pre"></span>//定位 定位管理器<span style="white-space:pre"></span>lm = (LocationManager) getSystemService(LOCATION_SERVICE);<span style="white-space:pre"></span>listener = new LocationListener() {<span style="white-space:pre"></span><span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onStatusChanged(String provider, int status, Bundle extras) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onProviderEnabled(String provider) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onProviderDisabled(String provider) {<span style="white-space:pre"></span>// TODO Auto-generated method stub<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>/* (non-Javadoc)<span style="white-space:pre"></span> * 位置变化,就触发此方法调用,覆盖此方法可以追踪回调结果信息<span style="white-space:pre"></span> * @see android.location.LocationListener#onLocationChanged(android.location.Location)<span style="white-space:pre"></span> */<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onLocationChanged(Location location) {<span style="white-space:pre"></span>//获取位置变化的结果<span style="white-space:pre"></span>float accuracy = location.getAccuracy();//精确度,以米为单位<span style="white-space:pre"></span>double altitude = location.getAltitude();//获取海拔高度<span style="white-space:pre"></span>double longitude = location.getLongitude();//获取经度<span style="white-space:pre"></span>double latitude = location.getLatitude();//获取纬度<span style="white-space:pre"></span>float speed = location.getSpeed();//速度<span style="white-space:pre"></span><span style="white-space:pre"></span>tv_mess.append("accuracy:" + accuracy + "\n");<span style="white-space:pre"></span>tv_mess.append("altitude:" + altitude + "\n");<span style="white-space:pre"></span>tv_mess.append("longitude:" + longitude + "\n");<span style="white-space:pre"></span>tv_mess.append("latitude:" + latitude + "\n");<span style="white-space:pre"></span>tv_mess.append("speed:" + speed + "\n");<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span>};<span style="white-space:pre"></span><span style="white-space:pre"></span>//获取所有的提供的定位方式<span style="white-space:pre"></span>//List<String> allProviders = lm.getAllProviders();<span style="white-space:pre"></span>//for (String string : allProviders) {<span style="white-space:pre"></span>//<span style="white-space:pre"></span>System.out.println(string + "》》定位方式");<span style="white-space:pre"></span>//}<span style="white-space:pre"></span>//Criteria criteria = new Criteria();<span style="white-space:pre"></span>//criteria.setCostAllowed(true);//产生费用<span style="white-space:pre"></span>//criteria.setAccuracy(Criteria.ACCURACY_FINE);<span style="white-space:pre"></span><span style="white-space:pre"></span>//动态获取手机的最佳定位方式<span style="white-space:pre"></span>//String bestProvider = lm.getBestProvider(criteria , true);<span style="white-space:pre"></span><span style="white-space:pre"></span>/**<span style="white-space:pre"></span> * provider  定位的方式: 1,wifi  2,3g/4g 消极定位  3,gps<span style="white-space:pre"></span> * minTime   定位的时间差  10分钟<span style="white-space:pre"></span> * minDistance 定位的距离差 10m <span style="white-space:pre"></span> * listener 定位的监听回调<span style="white-space:pre"></span> */<span style="white-space:pre"></span>lm.requestLocationUpdates("gps", 0, 0, listener);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public boolean onCreateOptionsMenu(Menu menu) {<span style="white-space:pre"></span>// Inflate the menu; this adds items to the action bar if it is present.<span style="white-space:pre"></span>getMenuInflater().inflate(R.menu.main, menu);<span style="white-space:pre"></span>return true;<span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void onDestroy() {<span style="white-space:pre"></span>// 取消定位的监听<span style="white-space:pre"></span>lm.removeUpdates(listener);<span style="white-space:pre"></span>lm = null;<span style="white-space:pre"></span>super.onDestroy();<span style="white-space:pre"></span>}}

2、添加权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/><!-- 模拟器专用 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


0 0
原创粉丝点击