GPS_定位
来源:互联网 发布:淘宝怎么加入中国质造 编辑:程序博客网 时间:2024/06/15 11:21
<!-- 连接互联网Internet权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- GPS定位权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
package alice.bw.com.day10_gps;import android.Manifest;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.location.LocationProvider;import android.os.Bundle;import android.provider.Settings;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private LocationManager lm; private EditText ed; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed = (EditText) findViewById(R.id.ed); //获取位置服务管理器 lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 判断GPS是否正常启动 if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) { Toast.makeText(this, "请开启GPS导航...", Toast.LENGTH_SHORT).show(); // 返回开启GPS导航设置界面 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent, 1); } // syst.addGpsStatusListener(gps); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } // 绑定监听,有4个参数 监听位置变化 // 参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种 // 参数2,位置信息更新周期,单位毫秒 // 参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息 // 参数4,监听 // 备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新 // 1秒更新一次,或最小位移变化超过1米更新一次; // 注意:此处更新准确度非常低,推荐在service里面启动一个Thread,在run中sleep(10000);然后执行handler.sendMessage(),更新位置 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, lo); } // 位置监听 LocationListener lo = new LocationListener() { /** * 位置信息变化时触发 */ //位置发生变换的时候调用该方法 @Override public void onLocationChanged(Location location) { updateView(location); } /** * GPS状态变化时触发 */ @Override public void onStatusChanged(String provider, int status, Bundle extras) { switch (status) { // GPS状态为可见时 case LocationProvider.AVAILABLE: Log.i("sxl", "当前GPS状态为可见状态"); break; // GPS状态为服务区外时 case LocationProvider.OUT_OF_SERVICE: Log.i("sxl", "当前GPS状态为服务区外状态"); break; // GPS状态为暂停服务时 case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.i("sxl", "当前GPS状态为暂停服务状态"); break; } } /** * GPS开启时触发 */ @Override public void onProviderEnabled(String provider) { 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) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } Location location = lm.getLastKnownLocation(provider); updateView(location); } /** * GPS禁用时触发 */ @Override public void onProviderDisabled(String s) {// updateView(null); } }; /** * 实时更新文本内容 * * */ public void updateView(Location lo){ ed.setText("经度:"); ed.append(String.valueOf(lo.getLongitude())); ed.append("纬度:"); ed.append(String.valueOf(lo.getLatitude())); ed.append("海拔:"); ed.append(String.valueOf(lo.getAltitude())); }}
阅读全文
0 0
- GPS_定位
- GPS_华翰_解决方案
- GPS_公交_通用解决方案
- GPS_物流_中网信安_解决方案
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- 定位
- Atlas
- tomcat7.0.70 启动报错java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- mysql 5.6安装成功后如何设置密码?
- STM32: 实现AES 128-BIT加密算法 - 标准实现【转】
- 搭建一个和CC一样的点云编辑器
- GPS_定位
- svn命令详解
- Redis3.x-集群搭建
- webService接口传递json对象数据为什么接口实现类获取不到?
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- isinstance函数
- Lab 1:结对编程
- Python批量导入图片生成PowerPoint 2007+文件
- 使用SSIS创建同步数据库数据任务