赞
踩
1.GPS定位:需要GPS硬件支持,直接和卫星交互来获取当前经纬度。
优点:速度快、精度高、可在无网络情况下使用。
缺点:首次连接时间长、只能在户外已经开阔地使用,设备上方有遮挡物就不行了、比较耗电。
2.Network定位:又细分为WIFI定位和基站定位
(1)基站定位:一般手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转所需要时间来算出手机所在的坐标
a.优点:受环境的影响情况较小,不管在室内还是人烟稀少的地方都能用,只要有基站。
b.缺点:首先需要消耗流量、其实精度没有GPS那么准确,大概在十几米到几十米之间
(2)WIFI定位:
a.优点:和基站定位一样,它的优势在于收环境影响较小,只要有Wifi的地方可以使用。
b.缺点:需要有wifi、精度不准
3.AGPS定位:AssistedGPS(辅助全球卫星定位系统),是结合GSM或GPRS与传统卫星定位
清单文件权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
代码
public class MainActivity extends AppCompatActivity { LocationManager manager; String[] permissions; boolean hasnoPermission=false; boolean isOk=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //要申请的权限列表 permissions=new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION}; manager = (LocationManager) getSystemService(LOCATION_SERVICE);//获得定位的管理类 initPermission(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); } public void initPermission(){ if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){ for(String per: permissions){ if(checkSelfPermission(per)!=PackageManager.PERMISSION_GRANTED){ hasnoPermission=true; break; } } if(hasnoPermission){ requestPermissions(permissions,100); }<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。