有了智能手机以后,想要定位导航就容易多了,但是如果碰上路痴还是有可能会把自己搞丢,就算能用手机定位,不会看地图也搞不懂自己究竟在哪。
这款APP的名字很直白,直接就叫《位置地址显示》,可以帮用户获得自己当前的详细位置、地址,如果到了陌生的地方找不到路,又没法向朋友描述的时候可以直接通过它来获取地址,然后还能通过多种形式将位置发送给朋友。它有多种定位方式,首先会通过gps定位,如果没有信号的话会再通过WIFI信号定位,如果依然没有信号,会按你最后一次定位的位置显示地址。打开APP后它会自动开始定位。定位成功以后会在上方显示经纬度,点击一下就可以进入短信界面,在其中可以通过短信或者Line来发送信息。
点击菜单键以后还可以切换多种地图形式,可以用卫星模式、混合模式等方式查看所在地,甚至还可以查看当前地区的天气情况。如果是支持谷歌街景的地区,还可以直接查看自己附近的街景。
一旦你的Android手机丢失,千万不要慌张。目前的Android手机都具有定位功能,这个定位是指通过手机本身的GPS或移动网络进行定位,如果你不能确定你手机中的这项功能是否启用的话,不妨实际操作试试吧,或许会有惊喜。下面就给大家分享一下Android手机如何利用自身的设备管理器功能进行定位。
Android系统自带的定位功能此方法试用于安装有完整谷歌服务框架的Android手机,部分国行手机可能无法正常使用。
谷歌自带了数据备份、定位、防盗(响铃、锁定、清空)等功能,使用该服务,需要在手机上安装谷歌服务框架(在应用市场搜索即可),并登录谷歌账号。
在谷歌服务应用中找到“Google设置”这个应用,选择里面的“Android设备管理器”,选中“远程定位此设备”和“允许远程回复出厂设置”。
手机一旦丢失,打开Android设备管理器网页
可以看到白色方框右上角的“定位”,以及下方的“响铃”“锁定和清空”功能,点击相应按钮即可执行相应操作。
手机发生对应反应的前提是能够通过Wi-Fi或移动数据连接正常上网,因此,如果手机离线,相关操作将会在手机上线后继续执行。
点击响铃,手机会以最大铃声持续响5分钟。不过用户点击电源键可关闭,这个设计着实无语,应该强制响铃才对呀!
使用了Android设备管理器的远程锁定功能,它将覆盖你手机中所有已经存在的密码,让小偷无法进入系统。
清空选项则会将手机的联系人等信息删除,避免隐私的泄露。
由于国行手机大部分都没有配备谷歌的相关服务,所以上述的定位功能不一定适用于所有的Android手机。但也别就此放弃希望,如果你的手机平时有安装的有例如《LBE安全大师》或《腾讯手机管家》这类安全软件,说不定也有找回的机会。
LBE安全大师
使用之前要确定你的《LBE安全大师》已经开启了防盗功能。
如果你已经开启了防盗功能,你的安全手机会收到一份防盗指令的短信。用户可以通过向丢失手机发送短信指令,完成数据销毁、数据备份、手机锁定、手机定位等功能。
销毁数据:xiaohui%防盗密码
锁定手机:suoding%防盗密码
定位手机:dingwei%防盗密码
响铃报警:baojing%防盗密码
备份信息:beifen%防盗密码
虚拟警告:jinggao%防盗密码#警告信息
找回密码:huodemima
找回密码指令必须用安全手机发送。
需要注意的是,至少需要移动网络或Wi-Fi网络中的一项网络链接,并且遗失的手机保持开机和SIM卡正常服务状态下,才能完成定位。当执行备份、定位等操作时,软件会自动打开网络连接和GPS定位。
1.得到系统定位服务
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
2.加载定位监听
lm.(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
System.out.println(location.getLatitude() + " " + location.getLongitude());
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
};
3.得到最近一次监听地址
Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
loc.getLatitude();
loc.getLongitude();
贫穷人士表示没有安卓手机 不能测试下了 大概的流程记得是这样
使用百度地图 Android SDK定位吧.其实室内的话呢,一般就是wifi定位为主啦.public class HouseKeeperSearch extends Activity {private MapView mMapView;private MapController mMapController = null;// 定位相关private LocationClient mLocClient;private LocationData locData = null;public MyLocationListener myListener = new MyLocationListener();boolean isFirstLoc = true;// 是否首次定位private MyLocationOverlay myLocationOverlay = null; // 定点标志private BMapManager mBMapMan = null;private ProgressDialog pd;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBMapMan = new BMapManager(getApplication()); mBMapMan.init("", null); pd = new ProgressDialog(this); pd.setIndeterminate(true); pd.setMessage(getString(R.string.loading_location)); pd.setCancelable(true); pd.show(); setContentView(R.layout.activity_housekeeper_search); initMap();}private void initMap() { // 地图初始化 mMapView = (MapView) findViewById(R.id.map_view); mMapController = mMapView.getController(); mMapView.getController().setZoom(16); mMapView.getController().enableClick(true); mMapView.(true); // 定位初始化 mLocClient = new LocationClient(this); locData = new LocationData(); mLocClient.(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);// 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); mLocClient.setLocOption(option); mLocClient.start(); //启动 // 定位图层初始化 myLocationOverlay = new MyLocationOverlay(mMapView); // 设置定位数据 myLocationOverlay.setMarker(getResources().getDrawable( R.drawable.location)); // 添加定位图层 mMapView.getOverlays().add(myLocationOverlay); myLocationOverlay.enableCompass(); // 修改定位数据后刷新图层生效 mMapView.refresh(); //加载}/** * 定位SDK监听函数 */public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null) return; locData.latitude = location.getLatitude(); locData.longitude = location.getLongitude(); // 如果不显示定位精度圈,将accuracy赋值为0即可 locData.accuracy = location.getRadius(); // 此处可以设置 locData的方向信息, 如果定位 SDK 未返回方向信息,用户可以自己实现罗盘功能添加方向信息。
locData.direction = location.getDerect(); myLocationOverlay.setData(locData); // 更新图层数据执行刷新后生效 mMapView.refresh(); // 是手动触发请求或首次定位时,移动到定位点 if (isFirstLoc) { // 移动地图到定位点 Log.d("LocationOverlay", "receive location, animate to it"); mMapController.animateTo(new GeoPoint( (int) (locData.latitude * 1e6), (int) (locData.longitude * 1e6))); if (pd.isShowing()) pd.dismiss(); } // 首次定位完成 isFirstLoc = false; } public void onReceivePoi(BDLocation poiLocation) { if (poiLocation == null) { return; } }}@Overrideprotected void onPause() { mMapView.onPause(); if (mBMapMan != null) { mBMapMan.stop(); } super.onPause();}@Overrideprotected void onResume() { mMapView.onResume(); if (mBMapMan != null) { mBMapMan.start(); } super.onResume();}@Overrideprotected void onDestroy() { // 退出时销毁定位 if (mLocClient != null) mLocClient.stop(); mMapView.destroy(); if (mBMapMan != null) { mBMapMan.destroy(); mBMapMan = null; } super.onDestroy();}@Overrideprotected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState);}@Overrideprotected void (Bundle savedInstanceState) { super.(savedInstanceState); mMapView.(savedInstanceState);}。
安卓平台实现定位步骤、方法如下: 1.三个接口: GpsStatus.Listener: 这是一个当GPS状态发生改变时,用来接收通知的接口。 GpsStatus.NmeaListener: 这是一个用来从GPS里接收Nmea-0183(为海用电子设备制定的标准格式)信息的接口。 LocationListener: 位置监听器,用于接收当位置信息发生改变时从LocationManager接收通知的接口。 2.八个类: Address: 描述地址的类 Criteria: 用于描述Location Provider标准的类,标准包括位置精度水平,电量消耗水平,是否获取海拔、方位信息,是否允许接收付费服务。 GeoCoder: 用于处理地理位置。 GpsSatellite: 和GpsStatus联合使用,用于描述当前GPS卫星的状态。 GpsStatus: 和GpsStatus.Listener联合使用,用于描述当前GPS卫。
GeoCoder.Listener联合使用。
GpsStatus: 通过此类获取和调用系统位置服务
LocationProvider: 用于处理地理位置.NmeaListener: 这是一个当GPS状态发生改变时。
Location: 这是一个用来从GPS里接收Nmea-0183(为海用电子设备制定的标准格式)信息的接口,标准包括位置精度水平,用于描述当前GPS卫星的状态: 用于描述Location Provider的抽象超类,电量消耗水平: 用于描述Location Provider标准的类:
GpsStatus,用于描述当前GPS卫星的状态安卓平台实现定位步骤,是否允许接收付费服务.八个类。
LocationManager,用于接收当位置信息发生改变时从LocationManager接收通知的接口,谢谢、方位信息。
GpsSatellite、方法如下:
LocationListener,是否获取海拔.三个接口.Listener:
Address: 和GpsStatus,用来接收通知的接口。
GpsStatus。
2: 用于描述位置信息。
: 描述地址的类
Criteria: 和GpsStatus联合使用: 位置监听器
国内应用最好还是用百度定位,如果只是单纯的小应用测试玩玩的,百度申请个免费的apikey就可以使用,但是如果这个应用是需要发布的,还是花钱申请个apikey,因为免费的apikey是有使用次数限制的。
GPS定位一般不做考虑的,只有在室外才能使用,室内GPS无法使用。
国内很多定制机都是阉割google地图的,甚至有的手机根本不支持常规的基站定位,所以做国内应用的话,需要将所有的都考虑进去,包括google包不能使用(酷派手机不支持google地图包,应用都装不进去的)、常规定位不支持等都需要在程序里面判断清楚。
三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位。
1.基站定位(passive):这是基于网络基站进行定位的,定位的精确度在几十米到几千米不等,在城市中基站覆盖率比较高,推荐使用基站定位,如果是在郊区,基站相距较远,基站的覆盖没有城里好,定位的误差比较大。如果在郊区不推荐使用基站定位。
2.网络定位:wifi定位,网络定位3.GPS定位:与卫星进行通信。手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。
使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。精确度:10-50米扩展知识:使用Android是定位必备的权限: //精确定位 //模拟器 //粗糙定位//获取定位管理对象LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);String[] names=lm.getAllProviders();//获取所有的位置提供者,一般三种Criteria criteria=new Criteria();//查询条件,如果设置了海拔,则定位方式只能是GPS;criteria.setCostAllowed(true);//是否产生开销,比如流量费String provider=lm.getBaseProvider(criteria,true)//获取最好的位置提供者,第二个参数为true,表示只获取那些被打开的位置提供者lm.(provier,0,0,new LocationListener(){});//获取位置。
第二个参数表示每隔多少时间返回一次数据,第三个参数表示被定位的物体移动每次多少米返回一次数据。private class MyLocationListener implements LocationListener { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override@Override public void onLocationChanged(Location location) { System. out.println( "服务中位置监听发送了变化了" ); float accuracy = location.getAccuracy(); // 精确度 double altitude = location.getAltitude(); // 海拔 double latitude = location.getLatitude(); // 纬度 double longitude = location.getLongitude(); // 经度 String locationInfo = "jingdu:" + longitude + ",weidu:" + latitude + ",haiba:" + altitude + ",jingquedu:" + accuracy; Editor edit = sp.edit(); edit.putString( "location", locationInfo); edit.commit(); } } public void onProviderDisabled(String provider) { }。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.679秒