失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 安卓系统GPS定位

安卓系统GPS定位

时间:2021-10-08 01:59:06

相关推荐

安卓系统GPS定位

常用三种定位方式:

1.GPS定位: 基于电磁波传输,定位精准,室内可能接收不到信号,不依赖网络;

2.网络定位(wifi):基于大数据,手机定位后的数据统计到运营商的数据库,数据可能会有延迟;

3.基站定位:有手机信号就能定位,定位不精准,差的时候可能相差一两公里。

权限

<!-- gps定位权限 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><!-- 粗略定位 --><!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> -->

代码

public class MainActivity extends Activity {private static final String TAG = "MainActivity";//定位管理器private LocationManager mLocationManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 初始化定位管理器mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);List<String> providers = mLocationManager.getProviders(false);for (String provider : providers) {Log.d(TAG, provider);}}@Overrideprotected void onStart() {super.onStart();// 请求位置更新/*** provider:提供者(定位方式)GPS_PROVIDER(gps定位)、NETWORK_PROVIDER(网络定位)、PASSIVE_PROVIDER(被动定位,依赖其他app的定位结果)* minTime:定位时间间隔 单位毫秒,传0表示最大限度去定位 * minDistance:下次定位需要经过的最小间隔*/mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0, mListener);}// 定位监听器private LocationListener mListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// 定位状态改变(可用/临时不可用)Log.d(TAG, "onStatusChanged()");}@Overridepublic void onProviderEnabled(String provider) {// 定位服务可用(设置-》位置服务-》打开定位)Log.d(TAG, "onProviderEnabled()");}@Overridepublic void onProviderDisabled(String provider) {// 定位服务不可用(设置-》位置服务-》关闭定位)Log.d(TAG, "onProviderDisabled()");}@Overridepublic void onLocationChanged(Location location) {// 定位到结果Log.d(TAG, "onLocationChanged()");//经纬度(121.518024,31.081642)double longitude = location.getLongitude();// 经度double latitude = location.getLatitude();// 维度Log.d(TAG, "经纬度(" + longitude + "," + latitude + ")");double altitude = location.getAltitude();// 海拔float speed = location.getSpeed();// 移动速度Log.d(TAG, "altitude = " + altitude + ", speed = " + speed);}};@Overrideprotected void onDestroy() {super.onDestroy();// 停止定位mLocationManager.removeUpdates(mListener);}}

如果觉得《安卓系统GPS定位》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。