先得到经纬度再用geocorder 显示位置,需要手机打开位置权限,使用GPS的话把注释去掉,GPS在室内很容易收不到信号,得到位置为空

public class MainActivity extends AppCompatActivity  {
private LocationManager lm;
double latitude;
double longitude; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER) ? true : false) {
// Toast.makeText(MainActivity.this, "请打开GPS~", Toast.LENGTH_SHORT).show();
// Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
// startActivityForResult(intent, 0);
// }
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//位置权限打开检查
return;
}
Location location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
// Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
System.out.println("经度"+longitude);
} //设置间隔两秒获得一次GPS定位信息
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 8, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 当GPS定位信息发生改变时,更新定位 } @Override
public void onStatusChanged(String provider, int status, Bundle extras) { } @SuppressLint("MissingPermission")
@Override
public void onProviderEnabled(String provider) { } @Override
public void onProviderDisabled(String provider) { }
}); Geocoder gc = new Geocoder(this, Locale.getDefault());
List<Address> address = null;
try {
address = gc.getFromLocation(latitude, longitude, 1);
} catch(IOException e){
e.printStackTrace();
} Address address2 = address.get(0);//得到Address实例
//Log.i(TAG, "address =" + address);
String countryName = address2.getCountryName();//得到国家名称,比方:中国
System.out.println("countryName = "+countryName);
String locality = address2.getLocality();//得到城市名称,比方:北京市
System.out.println("locality = "+locality);
for(int i = 0; address2.getAddressLine(i)!=null;i++)
{
String addressLine = address2.getAddressLine(i);//得到周边信息。包含街道等。i=0,得到街道名称
System.out.println("addressLine = " + addressLine);
}
}
}
 xmlns:tools="http://schemas.android.com/tools"
package="com.january.spring">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" /> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"> <activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

如果8.0以下geocoder可能无法得到,要把它放在线程执行里才行

最新文章

  1. mysql 查询数据时按照A-Z顺序排序返回结果集
  2. Class对象即反射
  3. Java Hour 21 Weather
  4. python 第三方模块 转 https://github.com/masterpy/zwpy_lst
  5. 深入理解 /etc/fstab文件
  6. fzu 1675 The Seventy-seven Problem
  7. 【BZOJ 2321】 [BeiJing2011集训]星器
  8. 【转】字符编码笔记:ASCII,Unicode和UTF-8
  9. ps存jpeg,格式保存的时候为什么选择“基线”
  10. jquery 动态增加的html元素,初始化设置在id或class上的事件无效
  11. SSL 双向认证
  12. phantomjs的使用
  13. 基于HTTP可供浏览器调用的本地打印程序
  14. 记第一次多用户在Git提交代码
  15. C# 生成强命名程序集并添加到GAC
  16. LoadRunner改脚本
  17. Webwork【07】文件上传下载
  18. 安恒杯2月月赛-应该不是xss
  19. OSI、TCP、IP、UDP 这些都是啥??
  20. React-Native进阶_3.触摸高亮显示TouchableHighlight

热门文章

  1. Jmeter引用外部jar包的几种方法
  2. C++解析XML的通用库
  3. SQL注入之Mysql报错注入
  4. Unity Shader学习笔记-1
  5. 万字长文 | 23 个问题 TCP 疑难杂症全解析
  6. spring+springmvc+mybatis+shiro
  7. “酒香也怕巷子深” Smartflow-Sharp 工作流
  8. python opencv 读取图片 返回图片某像素点的b,g,r值
  9. c++中 #define和const的区别
  10. P1527 [国家集训队]矩阵乘法(整体二分)