黑马52期学后总结笔记(三)

news/2024/10/27 19:19:15/

三种获取手机的位置的方式

1、网络定位(network)。前提是必须连上网络:wifi、3G、2G;

 获取到IP地址

 例如:传美版QQ,彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对方的IP;

 根据IP显示具体的位置;

 

 原理是建立一个库那个IP地址对应那个地方;早期警方破案就采用此特点;

 

 有局限性:针对固定的IP地址。

 如果手机网或者ip地址是动态分布IP,这个偏差就很大。这种情况是无法满足需求的。

 

2、基站定位(passive)。

 

工作原理:手机能打电话,是需要基站的。手机定位也是用基站的。

手机附近能收到3个基站的信号,就可以定位了。

基站定位有可能很准确,比如基站多的地方;

如果基站少的话就会相差很大。

精确度:几十米到几公里不等;

 

3、GPS定位(gps)。

A-GPS使用了卫星定位 需要联网辅助修正位置

需要3颗卫星;

特点是:需要搜索卫星,头顶必须是空旷的;

 

影响条件:云层、大厦、大树。

 

卫星:美国人、欧洲人的卫星。

北斗:中国的,但没有民用,只是在大巴,战机等使用。

精确度:15米左右

代码实现获取手机位置

 

1.写代码单独创建一个工程(TestGPS)演示;

 packagecom.example.testgps;

 

publicclass MainActivity extends Activity {

    private LocationManager lm;

    private MyLocationListener listener;

 

    @Override

    protected void onCreate(BundlesavedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        lm= (LocationManager) getSystemService(LOCATION_SERVICE);

        listener= new MyLocationListener();

        // 第二个参数:两次位置更新的时间间隔

        lm.requestLocationUpdates("gps", 0, 0, listener);

    }

 

    class MyLocationListener implementsLocationListener {

        // 当位置发生变化 执行者方法

        @Override

        publicvoid onLocationChanged(Location location) {

            String longitude = "经度:" + location.getLongitude() +"\n";

            String latitude = "纬度:" + location.getLatitude() +"\n";

            String accuracy = "精度:" + location.getAccuracy() +"\n";

            TextView textView = newTextView(getApplicationContext());

            textView.setText(longitude + latitude +accuracy);

            setContentView(textView);

 

        }

 

        // 当某一个位置提供者状态发生变化的时候 关闭--》开启或者开启--》关闭

        @Override

publicvoid onStatusChanged(String provider, int status, Bundle extras) {

 

        }

 

        @Override

        publicvoid onProviderEnabled(String provider) {

 

        }

 

        @Override

        publicvoid onProviderDisabled(String provider) {

 

        }

 

    }

 

    @Override

    protected void onDestroy() {

        super.onDestroy();

        lm.removeUpdates(listener);

        listener= null;

    }

 

}

 

2.权限:

 <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/>


获取手机位置的细节-火星坐标

准备条件是:得到GPS坐标

 

1、在ditu.google.cn上输入显示,找出偏移的原因;

2、介绍火星坐标

3、如何解决火星坐标的偏移的问题、创建Java工程使用代码

public static void main(String[] args)throws Exception {

              ModifyOffset modifyOffset =ModifyOffset.getInstance(GetHuoxingLocation.class.getResourceAsStream("axisoffset.dat"));

              PointDouble double1 =modifyOffset.s2c(newPointDouble(116.35372477, 40.06813447));

              System.out.println(double1);

 

       }

 

代码实现获取手机位置

 

 

1、创建服务GPSService 并移植代码到里面面,并优化细节。

2、  优化代码细节

       Criteria criteria = new Criteria();

        criteria.setAccuracy(Criteria.ACCURACY_FINE);

        Stringprovider = lm.getBestProvider(criteria,true);

        lm.requestLocationUpdates(provider, 0, 0,listener);

 

 

设置参数细化:

criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度
criteria.setAltitudeRequired(false);//不要求海拔信息
criteria.setBearingRequired(false);//不要求方位信息
criteria.setCostAllowed(true);//是否允许付费
criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求 


http://www.ppmy.cn/news/573519.html

相关文章

QQ显IP显隐身制作原理介绍转)

到QQ2008为至,可爱的珊瑚版本显IP显隐身的QQ已经不能用了,前几天下载了比特版本,传美版本,极速版本用了一下,感觉没有珊瑚虫的版本好用,总之用习惯了一种版本,不乐意改变太多.于是抱着这种心态,我于前天下午认真研究了QQ显IP显隐身的原理,自己成功编译出了一款比较满意的显IP显…

没了珊瑚虫你用谁?八大QQ主流修改版大比拼

北京市法院依法认定“珊瑚虫版&#xff31;&#xff31;”侵权&#xff0c;责令珊瑚虫版&#xff31;&#xff31;作者向腾讯致歉并赔偿多达10万元人民币经济损失。珊瑚虫工作室网站上已不再提供珊瑚虫版&#xff31;&#xff31;的下载&#xff0c;而只有“珊瑚虫增强包”、“…

QQ技巧

一、发送消息给任意qq号&#xff0c;在ie输入&#xff1a;tencent://message/?uinqq号码&#xff0c;回车就可以了。 二、查看好友是否隐身:找到好友头像&#xff0c;右击头像选择“浏览文件命令”&#xff0c;这是会弹出以个对话框并显示读取进度&#xff0c;浏览结束后&…

QQ技巧三例

一、发送消息给任意qq号&#xff0c;在ie输入&#xff1a;tencent://message/?uinqq号码&#xff0c;回车就可以了。 二、查看好友是否隐身:找到好友头像&#xff0c;右击头像选择“浏览文件命令”&#xff0c;这是会弹出以个对话框并显示读取进度&#xff0c;浏览结束后&…

通过QQ查看对方地址

不知道大家现在还有没有用能显示对方IP的QQ版本&#xff0c;现在貌似很少人使用这类版本的QQ了。此功能前几年十分流行&#xff0c;很受欢迎&#xff0c;每次上QQ&#xff0c;就能立即看到对方在什么地方。我一直想找一个能显示对方IP的QQ版本&#xff0c;官网上的版本肯定是没…

QQ2010无广告显IP凡水绿色特别版

QQ 2010全新体验 1&#xff1a;全新皮肤引擎&#xff0c;全新视觉盛宴 2&#xff1a;QQ大视频&#xff0c;视频聊天更大更清晰&#xff1b; 3&#xff1a;聊天窗口个性动作互动方式更多样&#xff1b; 4&#xff1a;QQ聊天装扮&#xff0c;聊天窗口与众不同&#xff1b; 5…

彩虹QQ显隐身原理

显IP的QQ显示好友所在位置的工作原理是&#xff1a;把各IP地址对应的地理位置数据都存在本地硬盘上&#xff0c;显示的时候先取得对方IP&#xff0c;然后查询本地文件里的对应数据&#xff0c;然后显示。 QQ得到IP地址后&#xff0c;对比上传用户的数据&#xff0c;发现其IP属于…

彩虹QQ查看对方ip原理

显IP的<a target_blank target"_blank" href"http://zhidao.baidu.com/question/70508935.html#" class"app-keyword" style"color: rgb(45, 100, 179); text-decoration: none;">QQ</a>显示好友所在位置的工作原理是&…