package com.qicheng.gps;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.widget.TextView;
import android.widget.Toast;
public class index extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
openGPSSettings();
}
private void openGPSSettings() {
LocationManager alm = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
if (alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "GPS模块正常", Toast.LENGTH_SHORT).show();
getLocation();
return;
}
Toast.makeText(this, "请开启GPS!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent, 0); // 此为设置完成后返回到获取界面 }
}
private void getLocation() {
// 获取位置管理服务
LocationManager locationManager;
String serviceName = Context.LOCATION_SERVICE;
locationManager = (LocationManager) this.getSystemService(serviceName);
// 查找到服务信息
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// 高精度
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
// 低功耗
String provider = locationManager.getBestProvider(criteria, true);
// 获取GPS信息
Location location = locationManager.getLastKnownLocation(provider);
//Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
// 通过GPS获取位置
updateToNewLocation(location);
// 设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,这样写主要为了方便)或最小位移变化超过N米
locationManager.requestLocationUpdates(provider, 2 * 1000, 500,
locationListener);
}
private void updateToNewLocation(Location location) {
TextView tv1;
tv1 = (TextView) this.findViewById(R.id.tv1);
if (location != null) {
double latitude = location.getLatitude();//经度
double longitude = location.getLongitude();//纬度
double altitude = location.getAltitude(); //海拔
tv1.setText("维度:" + latitude + "\n经度" + longitude+"\n海拔:"+altitude);
} else {
tv1.setText("无法获取地理信息");
}
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// 当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
if (location != null) {
updateToNewLocation(location);
}
}
public void onProviderDisabled(String provider) {
// Provider被disable时触发此函数,比如GPS被关闭
}
public void onProviderEnabled(String provider) {
// Provider被enable时触发此函数,比如GPS被打开
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
}
};
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
GPS定位程序.rar (30个子文件)
GPSpp
.project 839B
bin
AndroidManifest.xml 711B
jarlist.cache 119B
GPSpp.apk 15KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 2KB
resources.ap_ 11KB
classes
com
qicheng
gps
R$string.class 418B
R$layout.class 385B
R$drawable.class 391B
index$1.class 1KB
R.class 510B
index.class 3KB
BuildConfig.class 339B
R$attr.class 331B
R$id.class 405B
classes.dex 5KB
proguard.cfg 1KB
AndroidManifest.xml 711B
src
com
qicheng
gps
index.java 3KB
project.properties 562B
res
values
strings.xml 165B
layout
main.xml 556B
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
.classpath 380B
gen
com
qicheng
gps
R.java 784B
BuildConfig.java 157B
assets
共 30 条
- 1
资源评论
- mark_cl2019-04-15谢谢楼主,代码对我有用,学习了
- dyste2012-11-30真不错啊,帮助很大
- freeso2013-10-30表示运行不了
NEC_xhf
- 粉丝: 7
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功