android获取不到当前经纬度

luweiyuan01 CSDN会员 luweiyuan01 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

package com.gpdi;

import com.autonavi.mapapi.GeoPoint;
import com.autonavi.mapapi.MapActivity;
import com.autonavi.mapapi.MapController;
import com.autonavi.mapapi.MapView;
import com.autonavi.mapapi.MyLocationOverlay;

import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;

@SuppressWarnings("unused")
public class MapTestActivity extends MapActivity {

MapView mMapView;
MapController mMapController;
GeoPoint point;

private double latitude=0.0;
private double longitude =0.0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}else{
LocationListener locationListener = new LocationListener() {

// Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

// Provider被enable时触发此函数,比如GPS被打开
@Override
public void onProviderEnabled(String provider) {

}
// Provider被disable时触发此函数,比如GPS被关闭
@Override
public void onProviderDisabled(String provider) {

}

//当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.e("Map", "Location changed : Lat: " + location.getLatitude() + " Lng: " + location.getLongitude());
}
}
};
//locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);
Criteria crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_FINE);
String provider = locationManager.getBestProvider(crit, true);
Location location = locationManager.getLastKnownLocation(provider);
//Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if(location != null){
latitude = location.getLatitude(); //经度
longitude = location.getLongitude(); //纬度
}
}
mMapView = (MapView) findViewById(R.id.atmapsView);
mMapView.setBuiltInZoomControls(true); //设置吭用内置的缩放控件
mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
point = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
mMapController.setCenter(point); //设置地图中心点
mMapController.setZoom(12); //设置地图zoom级别
}
}

获取的location全为null
权限已设置:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
...全文

相关推荐

Android通过原生APi获取所在位置的经纬度

在Android开发当中,经常需要用到定位功能,尤其是依赖于地理位置功能的应用,本文介绍了Android通过原生APi获取所在位置的经纬度,分享给大家 一、难点介绍 1.难点 我们的应用要新增一个功能,就是在用户打开附件的人页面后,将用户的经纬度通过一个接口返回给服务端,从而让服务器可以准确定位。 因为只是添加一个小功能所以,引入第三方SDK定位就有些大材小用了,所以就准备借助原生APi:LocationManager来完成。 经过在网络上一搜,有很多关于通过LocationManager获取经纬度坐标的,所有的代码几乎大同小异,本着负责任的态度,就看了好多篇,然后总结出了一个比较优良

weixin_38682086

使用百度地图的locSDK获取当前经纬度

使用百度地图提供的locSDK获取当前设备的经纬度,输出到界面上

更那堪冷落清秋节

android studio获取当前经纬度的简单实例

一个简单的获取当前位置经纬度的实例. 适合初学者,在Android Studio下编译通过.

ruihuo

Android获取当前地理位置经纬度坐标

Android获取当前地理位置经纬度坐标,使用AndroidStudio开发,内有需要使用的Jar包,导入即可使用

XieTeTe

Android GPS定位(获取经纬度)

完美封装的Android GPS定位(获取经纬度)管理类,详情见:http://blog.csdn.net/u012810020/article/details/52517976

lzy_tinyjoy
评论 7
收藏 已收藏
分享
返回顶部
luweiyuan01 CSDN会员
J2ME 13,096 成员 26,491 内容