解决方案 »

  1.   

    补充一点  不需要移动网络支持的方式   只要单纯GPS获取经纬度   在线等
      

  2.   

    你首先要确保gps已经定位到啊,没定位到返回肯定是null的
      

  3.   


    首先  我用的是三星I9300  这款手机我跟三星开发工程师确认过了 具有GPS定位功能   、
    然后  loctionManager.addGpsStatusListener(listener);   GpsStatus.Listener listener = new GpsStatus.Listener() {  
            public void onGpsStatusChanged(int event) {  
                switch (event) {  
                // 第一次定位  
                case GpsStatus.GPS_EVENT_FIRST_FIX:  
                    Log.i(TAG, "第一次定位");  
                    break;  
                // 卫星状态改变  
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:  
                    Log.i(TAG, "卫星状态改变");  
                    // 获取当前状态  
                    GpsStatus gpsStatus = lm.getGpsStatus(null);  
                    // 获取卫星颗数的默认最大值  
                    int maxSatellites = gpsStatus.getMaxSatellites();  
                    // 创建一个迭代器保存所有卫星  
                    Iterator<GpsSatellite> iters = gpsStatus.getSatellites()  
                            .iterator();  
                    int count = 0;  
                    while (iters.hasNext() && count <= maxSatellites) {  
                        GpsSatellite s = iters.next();  
                        count++;  
                    }  
                    System.out.println("搜索到:" + count + "颗卫星");  
                    //Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show();
                    break;  
                // 定位启动  
                case GpsStatus.GPS_EVENT_STARTED:  
                    Log.i(TAG, "定位启动");  
                    break;  
                // 定位结束  
                case GpsStatus.GPS_EVENT_STOPPED:  
                    Log.i(TAG, "定位结束");  
                    break;  
                }  
            };  
        };  这个可以打印出 搜索到的卫星数量  0,1,2,3 不等 请问下    怎么样确保gps已经定位了 ?  
      

  4.   


      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <!-- 连接互联网Internet权限 -->
        <uses-permission android:name="android.permission.INTERNET" />
        <!-- GPS定位权限 -->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    在网上看了   基本都是这些权限   都添加好了
      

  5.   


    首先  我用的是三星I9300  这款手机我跟三星开发工程师确认过了 具有GPS定位功能   、
    然后  loctionManager.addGpsStatusListener(listener);   GpsStatus.Listener listener = new GpsStatus.Listener() {  
            public void onGpsStatusChanged(int event) {  
                switch (event) {  
                // 第一次定位  
                case GpsStatus.GPS_EVENT_FIRST_FIX:  
                    Log.i(TAG, "第一次定位");  
                    break;  
                // 卫星状态改变  
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:  
                    Log.i(TAG, "卫星状态改变");  
                    // 获取当前状态  
                    GpsStatus gpsStatus = lm.getGpsStatus(null);  
                    // 获取卫星颗数的默认最大值  
                    int maxSatellites = gpsStatus.getMaxSatellites();  
                    // 创建一个迭代器保存所有卫星  
                    Iterator<GpsSatellite> iters = gpsStatus.getSatellites()  
                            .iterator();  
                    int count = 0;  
                    while (iters.hasNext() && count <= maxSatellites) {  
                        GpsSatellite s = iters.next();  
                        count++;  
                    }  
                    System.out.println("搜索到:" + count + "颗卫星");  
                    //Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show();
                    break;  
                // 定位启动  
                case GpsStatus.GPS_EVENT_STARTED:  
                    Log.i(TAG, "定位启动");  
                    break;  
                // 定位结束  
                case GpsStatus.GPS_EVENT_STOPPED:  
                    Log.i(TAG, "定位结束");  
                    break;  
                }  
            };  
        };  这个可以打印出 搜索到的卫星数量  0,1,2,3 不等 请问下    怎么样确保gps已经定位了 ?  有卫星数量,但这些不一定可用,你先用gps test测试下,还有,室外的定位效果会好点,室内gps不一定好
      

  6.   

    除了室外,无法定位,就是没有gps了。你先不要updateWithNewLocation(location);
    getLastKnownLocation(provider)的定位信息不一定是有的。
    直接加监听,缩短延迟看看。
      

  7.   


    我是放在一个线程里   每隔3s循环一次    一直取值    既然用的GPS定位肯定不是为了获取1个坐标信息   而是获取运动轨迹 上传到服务器    重头到尾 都没有获取到过这个看了别人的描述
    http://www.miui.com/article-8-1.html
      

  8.   


    我是放在一个线程里   每隔3s循环一次    一直取值    既然用的GPS定位肯定不是为了获取1个坐标信息   而是获取运动轨迹 上传到服务器    重头到尾 都没有获取到过这个看了别人的描述
    http://www.miui.com/article-8-1.html这个我没看,但是,loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);这个设置本身就是隔一段时间就更新当前定位,它已经有这个功能了。为什么又开线程去访问?还有就是,开了线程,你确定3s内就可以定位到当前位置?
      

  9.   

    开线城另有目的  在项目中 还有其他事事情做     这个跟 线程没关系     重点在取值上        有没有实现过 GPS获取坐标经纬度的
      

  10.   

    还是不要用默认的定位,因为有的手机是改过的,定不到位,用百度、高德什么的SDK。
    可以选择使用什么方式定位的。
      

  11.   

    额    现在可好需求就是不用移动网的情况下定位   基于网络定位的已经实现过了  现在做离线地图部分   就是户外没有任何网络时定位   或者说  有可能app不是装在手机上  而是带有GPS芯片的机器上       需要GPS定位
      

  12.   

    这个跟设备、环境有关
    你把手机拿到室外,用GPS TEST工具先定到位之后,再运行你APP试试
      

  13.   

    这个例子我用了,可以获取到,可能是楼主device的问题