精华内容
下载资源
问答
  • GPS定位

    2015-10-15 18:04:33
    gps手机是gps定位还是wifi定位,底层有自己的优化,不用代码区分

    gps手机是gps定位还是wifi定位,底层有自己的优化,不用代码区分

    http://blog.csdn.net/doubleuto/article/details/40080533

    展开全文
  • gps定位

    2016-04-05 16:58:51
    //如果不设置查询要求,getLastKnownLocation方法传人的参数为LocationManager.GPS_PROVIDER Location location= lm.getLastKnownLocation(bestProvider); updateView(location); //监听状态 lm....
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
    	android:id="@+id/myLoctionText"  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textSize="22dip"
        android:text="@string/hello"
        />
    </LinearLayout>

    package com.zhou.activity;
    
    import android.app.Activity;
    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.widget.TextView;
    
    public class WhereAmIActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            //声明LocationManager对象
            LocationManager loctionManager;
            String contextService=Context.LOCATION_SERVICE;
            //通过系统服务,取得LocationManager对象
            loctionManager=(LocationManager) getSystemService(contextService);
            
            //通过GPS位置提供器获得位置
    //        String provider=LocationManager.GPS_PROVIDER;
    //        Location location = loctionManager.getLastKnownLocation(provider);
            
            //使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置
            Criteria criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度
            criteria.setAltitudeRequired(false);//不要求海拔
            criteria.setBearingRequired(false);//不要求方位
            criteria.setCostAllowed(true);//允许有花费
            criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗
            
            //从可用的位置提供器中,匹配以上标准的最佳提供器
            String provider = loctionManager.getBestProvider(criteria, true);
            
            //获得最后一次变化的位置
            Location location = loctionManager.getLastKnownLocation(provider);
            
            //显示在TextView中
            updateWithNewLocation(location);
            
            //监听位置变化,2秒一次,距离10米以上
            loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);
        }
    
        //位置监听器
        private final LocationListener locationListener = new LocationListener() {
    		@Override
    		public void onStatusChanged(String provider, int status, Bundle extras) {
    		}
    		@Override
    		public void onProviderEnabled(String provider) {
    		}
    		@Override
    		public void onProviderDisabled(String provider) {
    		}
    		//当位置变化时触发
    		@Override
    		public void onLocationChanged(Location location) {
    			//使用新的location更新TextView显示
    			updateWithNewLocation(location);
    		}
    	};
        
    	//将位置信息显示在TextView中
    	private void updateWithNewLocation(Location location) {
    		String latLongString;
    		TextView myLoctionText;
    		myLoctionText=(TextView) findViewById(R.id.myLoctionText);
    		if(location!=null){
    			double lat=location.getLatitude();
    			double lng=location.getLongitude();
    			latLongString = "Lat(纬度): "+lat+"\nLong(经度): "+lng;
    		}else{
    			latLongString="没找到位置";
    		}
    		myLoctionText.setText("您当前的位置是:\n"+latLongString);
    	}
    }

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    第二种:
    <pre name="code" class="java">package com.example.aaaa;
    
    import java.util.Calendar;
    import java.util.Iterator;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.location.Criteria;
    import android.location.GpsSatellite;
    import android.location.GpsStatus;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.location.LocationProvider;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.provider.Settings;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
        private EditText editText;  
        private TextView logText;  
        private LocationManager lm;  
        private static final String TAG="GpsActivity";  
         @Override  
         protected void onDestroy() {  
          // TODO Auto-generated method stub  
          super.onDestroy();  
          lm.removeUpdates(locationListener);  
         }  
      
      
     private void setLog(String txt){  
         printTime();  
         setLogInfo(txt);  
     }  
       
     private void setLogInfo(String txt){  
         logText.setText(txt+"\n"+"--------------------\n"+logText.getText());  
     }  
       
     private void printTime(){  
         Calendar ca = Calendar.getInstance();  
         int year = ca.get(Calendar.YEAR);//获取年份  
         int month=ca.get(Calendar.MONTH);//获取月份   
         int day=ca.get(Calendar.DATE);//获取日  
         int minute=ca.get(Calendar.MINUTE);//分   
         int hour=ca.get(Calendar.HOUR);//小时   
         int second=ca.get(Calendar.SECOND);//秒  
         int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK);   
           
           
         setLogInfo("当前日期:" + year +"年"+ month +"月"+ day + "日");  
         setLogInfo(">>>" + hour +"时"+ minute +"分"+ second +"秒");  
     }  
       
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
              
            editText=(EditText)findViewById(R.id.editText);  
            logText=(TextView) this.findViewById(R.id.logText);  
              
              
            lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);  
              
            //判断GPS是否正常启动  
            if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){  
                Toast.makeText(this, "请开启GPS导航...", Toast.LENGTH_SHORT).show();  
                setLog("请开启GPS导航...");  
                //返回开启GPS导航设置界面  
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);     
                startActivityForResult(intent,0);   
                return;  
            }  
              
            //为获取地理位置信息时设置查询条件  
            String bestProvider = lm.getBestProvider(getCriteria(), true);  
            //获取位置信息  
            //如果不设置查询要求,getLastKnownLocation方法传人的参数为LocationManager.GPS_PROVIDER  
            Location location= lm.getLastKnownLocation(bestProvider);      
            updateView(location);  
            //监听状态  
            lm.addGpsStatusListener(listener);  
            //绑定监听,有4个参数      
            //参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种  
            //参数2,位置信息更新周期,单位毫秒      
            //参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息      
            //参数4,监听      
            //备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新     
              
            // 1秒更新一次,或最小位移变化超过1米更新一次;  
            //注意:此处更新准确度非常低,推荐在service里面启动一个Thread,在run中sleep(10000);然后执行handler.sendMessage(),更新位置  
            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, locationListener);  
        }  
          
        //位置监听  
        private LocationListener locationListener=new LocationListener() {  
              
            /** 
             * 位置信息变化时触发 
             */  
            public void onLocationChanged(Location location) {  
                updateView(location);  
                Log.i(TAG, "时间:"+location.getTime());   
                Log.i(TAG, "经度:"+location.getLongitude());   
                Log.i(TAG, "纬度:"+location.getLatitude());   
                Log.i(TAG, "海拔:"+location.getAltitude());   
                  
                  
                setLog( "时间:"+location.getTime());  
                setLog( "经度:"+location.getLongitude());  
                setLog( "纬度:"+location.getLatitude());  
                setLog( "海拔:"+location.getAltitude());  
            }  
              
            /** 
             * GPS状态变化时触发 
             */  
            public void onStatusChanged(String provider, int status, Bundle extras) {  
                switch (status) {  
                //GPS状态为可见时  
                case LocationProvider.AVAILABLE:  
                    Log.i(TAG, "当前GPS状态为可见状态");  
                      
                    setLog("当前GPS状态为可见状态");  
                    break;  
                //GPS状态为服务区外时  
                case LocationProvider.OUT_OF_SERVICE:  
                    Log.i(TAG, "当前GPS状态为服务区外状态");  
                    setLog("当前GPS状态为服务区外状态");  
                    break;  
                //GPS状态为暂停服务时  
                case LocationProvider.TEMPORARILY_UNAVAILABLE:  
                    Log.i(TAG, "当前GPS状态为暂停服务状态");  
                    setLog("当前GPS状态为暂停服务状态");  
                    break;  
                }  
            }  
          
            /** 
             * GPS开启时触发 
             */  
            public void onProviderEnabled(String provider) {  
                Location location=lm.getLastKnownLocation(provider);  
                updateView(location);  
            }  
          
            /** 
             * GPS禁用时触发 
             */  
            public void onProviderDisabled(String provider) {  
                updateView(null);  
            }  
      
          
        };  
          
        //状态监听  
        GpsStatus.Listener listener = new GpsStatus.Listener() {  
            public void onGpsStatusChanged(int event) {  
                switch (event) {  
                //第一次定位  
                case GpsStatus.GPS_EVENT_FIRST_FIX:  
                    Log.i(TAG, "第一次定位");  
                    setLog("第一次定位");  
                    break;  
                //卫星状态改变  
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:  
                    Log.i(TAG, "卫星状态改变");  
                    setLog("卫星状态改变");  
                    //获取当前状态  
                    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+"颗卫星");  
                    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, locationListener);
                    setLog("搜索到:"+count+"颗卫星");  
                    break;  
                //定位启动  
                case GpsStatus.GPS_EVENT_STARTED:  
                    Log.i(TAG, "定位启动");  
                    setLog("定位启动");  
                    break;  
                //定位结束  
                case GpsStatus.GPS_EVENT_STOPPED:  
                    Log.i(TAG, "定位结束");  
                    setLog("定位结束");  
                    break;  
                }  
            };  
        };  
          
        /** 
         * 实时更新文本内容 
         *  
         * @param location 
         */  
        private void updateView(Location location){  
            if(location!=null){  
                editText.setText("设备位置信息\n\n经度:");  
                editText.append(String.valueOf(location.getLongitude()));  
                editText.append("\n纬度:");  
                editText.append(String.valueOf(location.getLatitude()));  
            }else{  
                //清空EditText对象  
                editText.getEditableText().clear();  
            }  
        }  
          
        /** 
         * 返回查询条件 
         * @return 
         */  
        private Criteria getCriteria(){  
            Criteria criteria=new Criteria();  
            //设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细   
            criteria.setAccuracy(Criteria.ACCURACY_FINE);      
            //设置是否要求速度  
            criteria.setSpeedRequired(false);  
            // 设置是否允许运营商收费    
            criteria.setCostAllowed(false);  
            //设置是否需要方位信息  
            criteria.setBearingRequired(false);  
            //设置是否需要海拔信息  
            criteria.setAltitudeRequired(false);  
            // 设置对电源的需求    
            criteria.setPowerRequirement(Criteria.POWER_LOW);  
            return criteria;  
        }  
    }  

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
    
            <EditText
                android:id="@+id/editText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:cursorVisible="false"
                android:editable="false" />
    
            <TextView
                android:id="@+id/logText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:minHeight="300dp" />
        </LinearLayout>
    
    </ScrollView>
    权限同上

    
    

    展开全文
  • 船舶GPS定位

    2018-04-30 15:29:00
    船舶GPS定位
  • android gps定位

    2018-06-22 10:29:44
    android gps定位 直接导入就可以使用!!!!android gps定位 直接导入就可以使用!!!!android gps定位 直接导入就可以使用!!!!
  • 安卓10源码开发定制(21)GPS定位研究(3)修改GPS定位数据测试gps定位代码 文章首发微信公众号:QDROID88888,如果感兴趣可以关注一下公众号。 一、测试gps定位功能的方法探讨 在安卓App gps定位开发过程中,往往需要...

    文章首发微信公众号:QDROID88888,如果感兴趣可以关注一下公众号。

    一、测试gps定位功能的方法探讨

    在安卓App gps定位开发过程中,往往需要进行GPS定位的测试。由于室内gps信号被挡住了,所以如果需要测试gps定位的代码,要么跑到室外去等待gps定位更新或者使用安卓sdk中提供的"MOCK_LOCATION"功能编写额外的测试代码来模拟gps位置更新。如果从系统定制的角度出发,也可以根据gps上报的流程来模拟gps上报的逻辑实现模拟gps 的定位数据。

    二、修改系统实现模拟gps数据上报

    2.1 安卓系统上报gps数据流程总结

    在之前的文章安卓10源码开发定制(21)GPS定位研究(2)gps位置改变监听源码分析中已经分析安卓系统中gps数据上报的大概流程:

    1. 当gps位置改变更新,com_android_server_location_GnssLocationProvider.cpp中通过反射调用GnssLocationProvider.java中的reportLocation方法将gps数据上报到安卓系统java层。

    2. GnssLocationProvider.java中使用LocationProvider.java提供的onReportLocation方法将gps数据上报到GPS 位置管理器。

    3. GPS位置管理器LocationProvider.java调用LocationManagerService.java提供的方法handleLocationChangedLocked将gps数据传到LocationManagerService.java中。

    4. LocationManagerService.java中通过GPS_PROVIDER关键字获取缓存的注册监听器Receiver列表,然后遍历每一个监听器并调用监听的callLocationChangedLocked方法来通知客户端位置更新。

    2.2 修改GPS数据的方案构想

    参考以上gps上报的流程,可以在LocationManagerService中使用定时器。定时获取设置的gps坐标,然后通过名称GPS_PROVIDER获取缓存的GPS位置提供管理器对象,然后调用onReportLocation方法达到模拟上报的目的。

    2.3 实现参考代码

    基于以上构想,通过修改系统测试高德地图验证成功。以下是验证的核心参考代码:

     ///ADD START
         //LocationManagerService中添加模拟上报位置的接口
        //主动上报GPS位置信息
        private void  reportLocation()
        {
    
            Timer time=new Timer();
            TimerTask timerTask=new TimerTask() {
                @Override
                public void run() {
                    Location location=new Location(LocationManager.GPS_PROVIDER);
                    location.setLongitude(117.27127064678953);
                    location.setLatitude(39.138059417665445);
    				
                    location.setElapsedRealtimeNanos(System.nanoTime());
    				location.makeComplete();
    				LocationProvider mylocProvider=getLocationProviderLocked(LocationManager.GPS_PROVIDER);
    				if(mylocProvider!=null)
    				{
    				    mylocProvider.onReportLocation(location);
    					XLog.d("LocationManagerService","onReportLocation success");
    				}else{
                        XLog.d("LocationManagerService","mylocProvider is NULL");
    				}
    				
                }
            };
            time.schedule(timerTask,10*1000,5*1000);
        }
        ///ADD END
    

    本文的目的只有一个就是学习更多的安卓系统方面的知识,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系

    安卓系统、安卓ndk开发、安卓应用安全和逆向分析相关等IT知识分享,系统定制、frida、xposed(sandhook、edxposed)、加固刷机交流等等。微信搜索公众号"QDOIRD88888"或者扫描以下二维码关注公众号。第一时间接收文章更新。

    在这里插入图片描述

    展开全文
  • GPS 车载GPS GPS定位 物流GPS 苏州GPS GPS车辆定位监控系统 物流车辆管理系统 苏州GPS服务中心
  •  苏州专业GPS行业6余年,只做GPS定位 专业GPS定位 苏州星通科远自动化设备有限公司,专做高端优质GPS产品! 新推出车辆标准接头,苏州首创工业用GPS快速安装,对轿车商务车大部分车辆实现即插即用,无需接线布线...



     

     

     苏州专业GPS行业6余年,只做GPS定位 专业GPS定位

    苏州星通科远自动化设备有限公司,专做高端优质GPS产品!

    新推出车辆标准接头,苏州首创工业用GPS快速安装,对轿车商务车大部分车辆实现即插即用,
    无需接线布线,最快可5-10分钟安装完成(不同车辆安装速度不同)

    苏州优质GPS企业,高端GPS定位,主打高质量GPS超稳定GPS性能,


    超长使用寿命,敢于终身质保。


    在高温,高压,震动等恶劣条件下,高品质云星科GPS均能正常稳定运行

    天线采用增强天线,最大程度保证信号良好,车辆GPS监控实时在线,且精确度优于普通产品

    采用优质通信模块,与ublox优质定位模块,高品质GPS主要专门应用于企业车辆管理大规模集团化用户

    主要功能如下:

    ●实时监控:全天24小时卫星GPS定位跟踪。
    ●安全管理:超速、疲劳驾驶自动报警,可以报表查询。
    ●全程记录:12个月内的行车数据回放与记录。
    ●调度指挥:根据车辆行驶情况,调度车辆 有任务即可调配距离最近车辆,解决车辆调度无合理信息为依据的问题。
    ●区域报警:车辆超出规定的行车范围立即报警,进出某区域报警提示并记录在系统中,用户可根据需要设置多个区域
    ●线路稽查:通过轨迹回放可核对里程行驶轨迹进行核查,方便路费、加油站费用核对。
    ●可靠性高:工业用设备,强度高,稳定 耐用,不易损坏。
    ●方便维护:可以远程让设备重启、诊断,方便维护。
    ●体积小巧:方便隐蔽安装,专用增强天线 提高信号稳定性与定位精确度。
    ●操作简便:可方便网上查车,也可以手机查车
    ●行车记录保存12个月,12个月内车辆行驶信息均可查询,历史轨迹均可会放。

    在江浙沪拥有稳定机房与服务器系统,云计算结合本地化的安装、服务、售后一体化!

    专业GPS产品供应商,专业专注 只做GPS定位,良好的性价比,优质的服务! 全市上门安装 维护

    苏州星通科远自动化设备有限公司  
    手机:13646216064     Tel:0512-89168901
    详细了解产品请登录
    Http://www.xk-gps.com
    驻上海GPS安装 昆山GPS安装 苏州GPS安装 吴江GPS安装 常熟GPS安装 太仓GPS安装

    展开全文
  • GPS定位补丁

    2015-08-13 22:00:15
    GPS定位补丁,解决定位慢搜不到星等问题
  • 强磁吸式的GPS定位设备是GPS定位器众多系列中的其中一类无线定位器,其运用强力磁铁粘附在有铁的位置,就能进行安装。强磁吸式定位器这几年在GPS定位器类别中算得上流行款了。原因有以下几点:1...
  • GPS定位原理

    千次阅读 2019-06-26 20:51:58
    目前手机上被广泛使用的移动定位技术有三种:基于网络的小区识别定位、集成GPS定位和A-GPS定位。 一、基于网络 即小区识别定位技术。GSM移动通信网络是由许多像蜂窝一样的小区构成的,每个小区都有自己的编号,...
  • GPS定位解算算法

    2017-11-01 09:58:32
    GPS定位算法有详实推算过程,对GNSS芯片开发有很好的指导价值。
  • STM32+gps定位

    2019-04-26 12:49:35
    STM32+gps定位是通过单片机驱动GPS模块进行定位,将经度、维度、时间、速度等信息进行实时的显示,包括了模块资料、程序工程、电路原理图等全套资料。
  • GPS定位器可以帮助我们管理我们心爱的汽车,在任何时候定位和查询车辆的位置,并跟踪车辆防盗,一些汽车公司和公共交通企业也可以管理和调度车队,管理数据,并根据GPS定位器分析数据,实现智能和现代交通。 GPS...
  • GPS定位源代码

    热门讨论 2013-10-15 22:16:51
    一个关于用gps定位的demo,可以只用gps准确定位。
  • 定位系统—GPS全球定位系统(Global Positioning System),GPS定位的基本原理是根据高速运动卫星的瞬间位置作为已知的起算数据,采用空间距离-后方交会的方法,确定待测点的位置。以GPS系统为例介绍卫星定位的计算...
  • 无论是各大IT巨头都看好的智能家居,还是极客们开发的无人机,都离不开GPS定位等功能实现。 如何通过Android原生平台获取 GPS信息. 开启GPS,并且要到空旷的室外(有时窗口也可以),否则可能无法定位,GPS室内...
  • 导读: 老人GPS定位监护系统采用最新的智能老人腕表和GPS定位平台,集定位、追踪、监控、报警等功能为一体,可以有效的解决和改善老人各类安全问题。
  • GPSBD专注提供最适合二次开发的GPS定位系统源码! GPS定位系统源码有很多种,都有各自的用途;比如公交车行业的GPS定位系统源码 和 公务派车系统的源码就不一样;并不是所有的源码都是适合做二次开发的;好比你拿到...
  • GPS定位代码

    2011-12-16 10:20:41
    GPS定位信息,已经调试通过.包括其LCD上显示出来
  • GPS定位:GPS是全球定位系统(Global zhidaoPositioning System)的缩写形式,它是一种基于卫星的定位系统,用于获得地理位置信息以及准确的通用协调时间。 该系统由美国政府放置在轨道中的24颗卫星组成。GPS可提供...
  • 使用 SIM868 的 基站定位功能及GPS定位功能,硬件平台为 STM32F103ZET6

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,901
精华内容 4,360
关键字:

gps定位