GPS_PROVIDER无法获取定位

问题描述

GPS_PROVIDER无法获取定位

代码如下

 public class MainActivity extends AppCompatActivity
{

    LocationManager locManager;

    EditText show;

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

        show = (EditText) findViewById(R.id.EditText);

 if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                    123);}
        locManager = (LocationManager) getSystemService
                (Context.LOCATION_SERVICE);

        Location location = locManager.getLastKnownLocation(
                LocationManager.GPS_PROVIDER);

        updateView(location);

        locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER
                , 3000, 8, new LocationListener()  // ①
                {
                    @Override
                    public void onLocationChanged(Location location)
                    {

                        updateView(location);
                        Log.v("MSG","1");
                    }
                    @Override
                    public void onProviderDisabled(String provider)
                    {
                        updateView(null);
                        Log.v("MSG","2");
                    }
                    @Override
                    public void onProviderEnabled(String provider)
                    {

                        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)
                                != PackageManager.PERMISSION_GRANTED) {

                            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                                    123);}
                        updateView(locManager
                                .getLastKnownLocation(provider));
                        Log.v("MSG","3");
                    }
                    @Override
                    public void onStatusChanged(String provider, int status,
                                                Bundle extras)
                    {
                    }
                });
    }

    public void updateView(Location newLocation)
    {
        if (newLocation != null)
        {
            StringBuilder sb = new StringBuilder();
            sb.append("实时的位置信息:n");
            sb.append("经度:");
            sb.append(newLocation.getLongitude());
            sb.append("n纬度:");
            sb.append(newLocation.getLatitude());
            sb.append("n高度:");
            sb.append(newLocation.getAltitude());
            sb.append("n速度:");
            sb.append(newLocation.getSpeed());
            sb.append("n方向:");
            sb.append(newLocation.getBearing());
            show.setText(sb.toString());
        }
        else
        {

            show.setText("无法获取地理信息");
            Log.v("MSG","4");
        }
    }
}

权限都已申请,还根据6.0的新变化,增加了运行时权限申请,但是还是无法获得定位信息,
把GPS_PROVIDER换成NETWORK_PROVIDER就可以获得定位,咋回事?

时间: 2024-09-17 12:07:04

GPS_PROVIDER无法获取定位的相关文章

android通过gps获取定位的位置数据和gps经纬度 _Android

复制代码 代码如下: package com.action.android_test;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.

android通过gps获取定位的位置数据和gps经纬度

复制代码 代码如下:package com.action.android_test;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.w

android使用百度地图SDK获取定位信息示例

本文使用Android Studio开发. 获取定位信息相对简单,我们只需要如下几步: 第一步,注册百度账号,在百度地图开放平台新建应用.生成API_KEY.这些就不细说了,请前往这里:http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/key 第二步,下载sdk,地址:http://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download

[android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题

       前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索",主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Interest)搜索.该篇讲述定位当前自己的位置及使用getLastKnownLocation获取location总时为空值的问题. 一. 定位当前位置的原理及实现       定位当前位置可以通过LBS(Location Based Service,基于位置的服务),主要工作原理是利用无线网络Network或GPS定

前端获取元素定位位置的法宝

在前端开发中,我们经常需要定位一个元素.如tooltip.popover或者modal等,或许是我们需要将它们定位在依赖元素的周围或屏幕滚动屏幕中心位置.这对于前端开发的码农来说并不是难事.算出和依赖元素的offset,设置元素的left.right.对于稍复杂的场景我们可能需要考虑被positioned的祖先元素. 但往往不是所有的事情都是这么简单的.笔者最新在项目开发中就遇见这样一个问题:这里的HTML是嵌入的,其来自jpedal商业软件从PDF文件自动生成的:为了展示的样式,jpedal统

ios-iOS 获取不到定位权限

问题描述 iOS 获取不到定位权限 iOS 我在做定位的时候 无法获取定位权限.info文件中的字段已经加了,始终拿不到,一直提示 Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysA

Android百度定位导航之基于百度地图移动获取位置和自动定位_Android

一.问题描述 使用百度地图实现如图所示应用,首先自动定位当前我起始位置(小圆点位置),并跟随移动不断自动定位我的当前位置 百度Api不同版本使用会有些差异,本例中加入lib如下: 二.编写MyApplication类 public class MyApplication extends Application { static MyApplication myApplication; BMapManager mBMapManager = null; String mStrKey = "7ZfuR

如何解决Android GPS没法定位的问题

大家去网上搜索Android定位location为null没法定位问题,估计有一大堆文章介绍如何来解决,但是最后大家发现基本没用.本文将从Android定位实现原理来深入分析没法定位原因并提出真正的解决方案.在分析之前,我们肯定得先看看android官方提供的定位SDK. 默认Android GPS定位实例 获取LocationManager: mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVI

android平台获取手机所在位置经纬度

以下程序经测试没有问题,功能主要有: 1)获取当前GPS经纬度信息 2)其他手机发送相应短信后,本机可以自动回复短信,以此获取到设备的经纬度信息 package com.freshen.test; import android.app.Activity; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android