最近试着写了一下AndroID的定位,代码在下面,比较简单
首先需要的权限有
<uses-permission androID:name="androID.permission.ACCESS_COARSE_LOCATION" /> <uses-permission androID:name="androID.permission.ACCESS_FINE_LOCATION"/> <uses-permission androID:name="androID.permission.INTERNET"/>
然后是里面的代码
package com.example.a5.myapplication; import androID.Manifest; import androID.content.Context; import androID.content.pm.PackageManager; import androID.location.Criteria; import androID.location.Location; import androID.location.LocationListener; import androID.location.LocationManager; import androID.support.v4.app.ActivityCompat; import androID.support.v7.app.AlertDialog; import androID.support.v7.app.AppCompatActivity; import androID.os.Bundle; import androID.vIEw.VIEw; import androID.vIEw.Window; import androID.vIEw.WindowManager; import androID.webkit.WebVIEw; import androID.Widget.button; import androID.Widget.TextVIEw; public class MainActivity extends AppCompatActivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_NO_Title); //全屏 getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,WindowManager.LayoutParams.FLAG_FulLSCREEN); setContentVIEw(R.layout.activity_main); button button = (button) findVIEwByID(R.ID.button); button.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //获取位置服务 LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); //ACCURACY_HIGH/ACCURACY_LOW精度选择 criteria.setAccuracy(Criteria.ACCURACY_FINE); //高度 criteria.setAltituderequired(true); //方位信息 criteria.setbearingrequired(true); //是否允许付费 criteria.setCostAllowed(true); //对电量的要求 criteria.setPowerRequirement(Criteria.POWER_LOW); //速度 criteria.setSpeedrequired(true); //获取最佳服务 String provIDer = locationManager.getBestProvIDer(criteria,true); //权限检查 if (ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } //获取到了位置 Location location = locationManager.getLastKNownLocation(provIDer); //开启地理位置监听定位类型、毫秒、米、监听时间 locationManager.requestLocationUpdates(provIDer,3000,1,new Listener()); locateResult(location); } }); } public class Listener implements LocationListener { @OverrIDe public voID onLocationChanged(Location location) { //位置变化,获取最新的位置 locateResult(location); } @OverrIDe public voID onStatusChanged(String provIDer,int status,Bundle extras) { } @OverrIDe public voID onProvIDerEnabled(String provIDer) { } @OverrIDe public voID onProvIDerDisabled(String provIDer) { } } public voID locateResult(Location location){ new AlertDialog.Builder(MainActivity.this) .setMessage("纬度" + String.valueOf(location.getLatitude()) + "\n经度" + String.valueOf(location.getLongitude()) + "\n速度" + String.valueOf(location.getSpeed()) + "\n高度" + String.valueOf(location.getAltitude()) + "\n朝向" + String.valueOf(location.getbearing()) ) .setNegativebutton("取消",null) .show(); } }
最后上图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android实现地理定位功能全部内容,希望文章能够帮你解决Android实现地理定位功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)