Android GPS 定位 1
16lz
2021-01-23
首先AndroidManifest中加入许可
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
通过系统服务获取LocationManager
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
设定定位需要的标准
Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);//criteria.setAccuracy(Criteria.ACCURACY_FINE); 如果是fine,那就是调用GPS了,室内基本是没希望能定位了啦criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);
接下来就可以获取定位信息
String provider = manager.getBestProvider(criteria, true);Location location = manager.getLastKnownLocation(provider);
这里 location可能是null,如果是null那就需要更新定位信息
if (location != null) {latitudeTxt.setText("latitude:" + location.getLatitude());longitudeTxt.setText("longitude:" + location.getLatitude());} else {manager.requestLocationUpdates(provider, 1*1000, 1000, listener);}
private LocationListener listener = new LocationListener() {public void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}//定位设备启用是时public void onProviderEnabled(String provider) {Log.d(TAG, "onProviderEnabled");}public void onProviderDisabled(String provider) {// TODO Auto-generated method stub}//定位获得信息改变时public void onLocationChanged(Location location) {Log.d(TAG, "onLocationChanged");latitudeTxt.setText("latitude:" + location.getLatitude());longitudeTxt.setText("longitude:" + location.getLatitude());}};
更多相关文章
- android 如何得到手机的信息..
- Android在一个类中使用Toast,信息显示在另一个Activity上
- android中 获取WiFi信息并计算wifi的信号强度
- Android 获取未安装的APK图标、版本号、包名等信息
- Android:手机信息的发送
- Android 获取手机电量信息
- Android系统信息查看方法
- php获取手机设备信息
- android 3G 手机信号 信息获取