如何在模拟器上获取GPS信息

如何在模拟器上获取GPS信息,第1张

在模拟器上获取GPS信息时,使用Location loc = LocationManagergetLastKnownLocation("gps");来获取location信息,但是往往在调试中loc是null的,因为首先需要在模拟器中手动添加GPS信息,有两种手动添加方法

1、在eclipse下,windows-->open perspective-->DDMS-->Emulator control-->Manual下手动设置经纬度,并按send按钮。

2、在cmd下手动添加信息。

(1)首先打开模拟器,然后运行cmd,输入telnet localhost 5554(注:5554是模拟器在本机的端口,有可能不一样哈,具体端口号,模拟器左上方有显示的),这样会出现

Android Console: type 'help' for a list of commands

OK的字样。

如果是使用WIN7的朋友,控制台可能会提示telnet无效什么的,那是因为WIN7下默认是不出现telnet的,需要手动打开。具体为:[1]控制面板-->程序-->打开或关闭Windows功能,然后将Telnet服务器和Telnet客户端勾选上。[2]然后在管理工具-->服务中手动启动Telnet

(2)使用geo命令模拟发送GPS信号:

geo fix 经度 纬度

(3)这时就会发现在模拟器的状态栏上多了一个GPS的标志~再使用Location loc = LocationManagergetLastKnownLocation("gps");就能获取到该坐标的位置

现在很多手机软件都会在后台获取我们的位置信息,为防止信息泄露,可以将定位关闭。那gps在手机哪个位置能找到?一起来看看吧~

gps在手机哪个位置能找到?

手机gps传感器在手机内部,无法找到,但如果想使用手机gps定位,可以开启手机定位功能。

苹果手机开启定位服务步骤如下:

1、打开手机设置,点击隐私。

2、点击定位服务选项。

3、开启定位服务右边的开关即可。

本文以iphone13pro为例适用于iOS 15系统

第一步,申明权限。(50之后权限需要动态申请,具体代码和这个问题无关就不贴出来了)

<!--定位权限-->

<uses-permissionandroid:name=\"androidpermissionACCESS_FINE_LOCATION\"/>

<uses-permissionandroid:name=\"androidpermissionACCESS_COARSE_LOCATION\"/>

第二步通过LocationManager类获取位置信息,下面是一个封装好的工具类

CreatedbyDELLzhanghuirongon2019/3/15

获取当前位置信息

/

publicclassMyLocationUtil{

privatestaticStringprovider;

publicstaticLocationgetMyLocation(){

//获取当前位置信息

//获取定位服务

LocationManagerlocationManager=(LocationManager)MyAppgetContext()getSystemService(ContextLOCATION_SERVICE);

//获取当前可用的位置控制器

List<String>list=locationManagergetProviders(true);

if(listcontains(locationManagerGPS_PROVIDER)){

//GPS位置控制器

provider=locationManagerGPS_PROVIDER;//GPS定位

}elseif(listcontains(locationManagerNETWORK_PROVIDER)){

//网络位置控制器

provider=locationManagerNETWORK_PROVIDER;//网络定位

}

if(provider!=null){

if(ActivityCompatcheckSelfPermission(MyAppgetContext(),ManifestpermissionACCESS_FINE_LOCATION)!=PackageManagerPERMISSION_GRANTED&&ActivityCompatcheckSelfPermission(MyAppgetContext(),ManifestpermissionACCESS_COARSE_LOCATION)!=PackageManagerPERMISSION_GRANTED){

//TODO:Considercalling

//ActivityCompat#requestPermissions

//heretorequestthemissingpermissions,andthenoverriding

//publicvoidonRequestPermissionsResult(intrequestCode,String[]permissions,

//int[]grantResults)

//tohandlethecasewheretheusergrantsthepermissionSeethedocumentation

//forActivityCompat#requestPermissionsformoredetails

returnnull;

}

LocationlastKnownLocation=locationManagergetLastKnownLocation(provider);

returnlastKnownLocation;

}else{

ToastUtilsmakeText(\"请检查网络或GPS是否打开\");

}

returnnull;

}

}

第三步(其实到上一步这个问题已经解决了,这个算扩展吧)将位置信息转换成地址信息。

在高德或者百度地图开发者平台申请访问api许可。将第二步获取到的经纬度信息上传查询对应坐标信息。因为百度和高德用的不是同一个坐标系,查询时仔细看官方API。

直接通过安卓的原生接口获取一个gps的位置意义不是很大。这个数据在一定的坐标系上才有意义。建议去高德的开发平台注册个帐号,引入sdk来做,地理位置与地理位置解析的概念先了解下吧。

//第一步先获取LocationManager的对象LocationManagerGpsManager=(LocationManager)thisgetSystemService(ContextLOCATION_SERVICE);//通过LocationManager的对象来获取到Location的信息。Locationlocation=GpsManagergetLastKnownLocation(LocationManagerGPS_PROVIDER);//Location中经常用到的有以下几种:/locationgetAccuracy();精度locationgetAltitude();高度:海拔locationgetBearing();导向locationgetSpeed();速度locationgetLatitude();纬度locationgetLongitude();经度locationgetTime();UTC时间以毫秒计/注:需要添加使用权限的哦

以上就是关于如何在模拟器上获取GPS信息全部的内容,包括:如何在模拟器上获取GPS信息、gps在手机哪个位置能找到、android开发怎么获得手机的gps等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9614113.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存