package com.test;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.util.List;
public class Test2 extends Activity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
openGPSSettings();
}
private void openGPSSettings() {
LocationManager alm = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
if (alm
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "GPS模块正常", Toast.LENGTH_SHORT)
.show();
doWork();
return;
}
Toast.makeText(this, "请开启GPS!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0); //此为设置完成后返回到获取界面
}
private void doWork() {
String msg = "";
TextView textView = (TextView) findViewById(R.id.tv1);
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
// 获得最好的定位效果
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
// 使用省电模式
criteria.setPowerRequirement(Criteria.POWER_LOW);
// 获得当前的位置提供者
String provider = locationManager.getBestProvider(criteria, true);
// 获得当前的位置
Location location = locationManager.getLastKnownLocation(provider);
Geocoder gc = new Geocoder(this);
List<Address> addresses = null;
try {
addresses = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} if (addresses.size() > 0) {
msg += "AddressLine:" + addresses.get(0).getAddressLine(0)+ "\n";
msg += "CountryName:" + addresses.get(0).getCountryName()+ "\n";
msg += "Locality:" + addresses.get(0).getLocality() + "\n";
msg += "FeatureName:" + addresses.get(0).getFeatureName();
}
textView.setText(msg);
}
}
Manifest 权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FIND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
分享到:
相关推荐
xamarin android中使用gps定位获取经纬度,入门的简单介绍:http://blog.csdn.net/kebi007/article/details/74936979
完美封装的Android GPS定位(获取经纬度)管理类,详情见:http://blog.csdn.net/u012810020/article/details/52517976
android 调用系统GPS获取经纬度
Android中GPS定位(获取经纬度)
点击一个按钮后能够进行gps定位,将取得的gps点在一个TextView中显示出来经纬度。
在Android应用中实现GPS返回Location经纬度值 不为null 可以实现
解决网络上常见的location返回为null问题,室内真机测试可能达不到结果,但是室外一定可以
GPSTask Android GPS定位(获取经纬度),完美封装的Android GPS定位,详见:http://blog.csdn.net/u012810020/article/details/52517976
使用Android原生gps定位的例子 每个几秒订一次 并将定位的经纬度和当前时间等信息写入数据库
android gps 获取经纬度 代码简单可用,只要一点击按钮,就打印出所在地点的经纬度。
Android GPS 定位的实现 使用Google地图 Android下实现GPS定位服务
case GpsStatus.GPS_EVENT_FIRST_FIX: //第一次定位时间UTC int utc; utc=gpsStatus.getTimeToFirstFix(); //获取首次定位时间 String str; str="完成首次定位,耗时"+utc+...
获取经纬度已经封装成工具类,纯原生获取android手机经纬度,并且根据经纬度转换成准确的地址
Android Studio 项目,集成了Android GPS定位。 在项目中也集成了高德SDK的定位效果。 项目的中key可以在高德开放平台上自行申请。
获取经纬度已经封装成工具类,纯原生获取android手机经纬度,并且根据经纬度转换成准确的地址
实现GPS定位功能,检测gps状态,实时采集当前经纬度信息。