手机GPS获取海拔
来源:互联网 发布:r语言编程代码 编辑:程序博客网 时间:2024/06/10 16:30
首先GPS在室内是没有信号的,所以只能在室外或者窗口获取到海拔等一系列数据。
java代码如下
package com.example.altitudeproject;
import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv1;
Location location;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 定义UI组件
Button b1 = (Button) findViewById(R.id.bt_button1);
tv1 = (TextView) findViewById(R.id.tv_textview1);
// 获取LocationManager对象
LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// 定义Criteria对象
Criteria criteria = new Criteria();
// 设置定位精确度 Criteria.ACCURACY_COARSE 比较粗略, Criteria.ACCURACY_FINE则比较精细
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// 设置是否需要海拔信息 Altitude
criteria.setAltitudeRequired(true);
// 设置是否需要方位信息 Bearing
criteria.setBearingRequired(true);
// 设置是否允许运营商收费
criteria.setCostAllowed(true);
// 设置对电源的需求
criteria.setPowerRequirement(Criteria.POWER_LOW);
// 获取GPS信息提供者
String bestProvider = lm.getBestProvider(criteria, true);
// 获取定位信息
location = lm.getLastKnownLocation(bestProvider);
// 给按钮绑定点击监听器
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateLocation(location);
}
});
// 位置监听器
LocationListener locationListener = new LocationListener() {
// 当位置改变时触发
@Override
public void onLocationChanged(Location location) {
Log.i("onLocationChanged", location.toString());
updateLocation(location);
}
// Provider失效时触发
@Override
public void onProviderDisabled(String arg0) {
Log.i("yao", arg0);
}
// Provider可用时触发
@Override
public void onProviderEnabled(String arg0) {
Log.i("onProviderEnabled", arg0);
}
// Provider状态改变时触发
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
Log.i("onStatusChanged", "onStatusChanged");
}
};
// 500毫秒更新一次,忽略位置变化
lm.requestLocationUpdates(bestProvider, 500, 0, locationListener);
}
// 更新位置信息
private void updateLocation(Location location) {
if (location != null) {
tv1.setText("定位信息如下:" + location.toString()+"\n\t海拔:"+location.getAltitude() +"\n\t方向:"+location.getBearing()+ "\n\t经度:" + location.getLongitude() + "\n\t纬度:"
+ location.getLatitude()+"\n\t提供商:"+location.getProvider()+"\n\t速度:"+location.getSpeed()+"\n\t时间:"+location.getTime());
} else {
Log.i("updateLocation", "没有获取到定位对象Location");
}
}
}
xml代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:id="@+id/bt_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取海拔" />
<TextView
android:id="@+id/tv_textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="具体信息"
android:layout_below="@id/bt_button1" />
</RelativeLayout>
AndroidManifest.xml中需要配置权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
- 手机GPS获取海拔
- iPhone手机GPS时速表,里程表与海拔表
- Android 获取手机GPS
- 获取手机是否开启GPS
- Android手机开发:获取GPS信息
- Android模拟器利用GPS获取手机位置
- 29_移植gps获取到手机
- GPS 定位获取 手机当前的位置
- Android--使用手机GPS获取经纬度
- 利用手机gps获取经纬信息定位
- Android手机获取GPS卫星数量问题
- Android--使用手机GPS获取经纬度
- 利用手机的GPS获取经纬度
- Android获取手机经纬度(GPS、NetWork)封装工具类
- android 如何去获取手机Gps的信号强度
- 记录-Android根据手机gps或者网络获取当前位置
- Android获取手机经纬度(GPS、NetWork)封装工具类
- 【Android】手机地图功能——利用手机GPS获取用户地理坐标
- 深度优先遍历
- MySQL数据库基础回顾与总结(一)
- [BZOJ2463][中山市选2009]谁能赢呢? ------之 如何写出一份看起来比较短的代码
- datagrid 插件
- 乐视云大前端技术架构
- 手机GPS获取海拔
- centos7安装AMD显卡驱动和AMD opencl SDK的过程
- IntelliJ IDEA 2017 破解
- Flex布局详解
- springmvc整合dubbo分布式系统的搭建demo
- Spring乱码,forceEncodeing=true
- Python网络编程-远程更新STM32APP程序
- request.setattribute怎么在jsp取值
- iOS中的KVC和KVO的理解