手机GPS定位
2017-10-22 20:18
155 查看
[html] view
plain copy
1.获取权限
[html] view
plain copy
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.LOCATION_HARDWARE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
2.主函数
[html] view
plain copy
public class MainActivity extends AppCompatActivity {
private LocationManager syst;
<
1a68f
span style="margin:0px;padding:0px;border:none;color:#000000;background-color:inherit;"> private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
syst = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
tv = (TextView) findViewById(R.id.tv);
if (!syst.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 1);
return;
}
// String best = syst.getBestProvider(getcriteria(), true);
syst.addGpsStatusListener(gps);
// syst.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, lo);
syst.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 1, lo);
}
// 位置监听
LocationListener lo = new LocationListener() {
/**
* 位置信息变化时触发
*/
@Override
public void onLocationChanged(Location location) {
up(location);
// Log.d("aa", "时间:" + location.getTime());
// Log.d("aa", "经度:" + location.getLongitude());
// Log.d("aa", "纬度:" + location.getLatitude());
// Log.d("aa", "海拔:" + location.getAltitude());
}
/**
* GPS状态变化时触发
*/
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
/**
* 位置信息变化时触发
*/
@Override
public void onProviderEnabled(String s) {
}
/**
* GPS禁用时触发
*/
@Override
public void onProviderDisabled(String s) {
}
};
// 状态监听
GpsStatus.Listener gps=new GpsStatus.Listener() {
@Override
public void onGpsStatusChanged(int i) {
// switch (i) {
// case GpsStatus.GPS_EVENT_FIRST_FIX:
// Log.d("aa", "第一次定位");
// break;
// case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
// Log.d("aa", "卫星状态改变");
// // 获取当前状态
// GpsStatus gpsStatus = syst.getGpsStatus(null);
// // 获取卫星颗数的默认最大值
// int maxSatellites = gpsStatus.getMaxSatellites();
// // 创建一个迭代器保存所有卫星
// Iterator<GpsSatellite> iters = gpsStatus.getSatellites()
// .iterator();
// int count = 0;
// while (iters.hasNext() && count <= maxSatellites) {
// GpsSatellite s = iters.next();
// count++;
// }
// System.out.println("搜索到:" + count + "颗卫星");
// break;
//
// case GpsStatus.GPS_EVENT_STARTED:
// Log.d("aa", "定位启动");
// break;
// case GpsStatus.GPS_EVENT_STOPPED:
// Log.d("aa", "定位停止");
// break;
// }
}
};
// public Criteria getcriteria(){
// Criteria criteria = new Criteria();
// criteria.setAccuracy(Criteria.ACCURACY_FINE);
// return criteria;
// }
public void up(Location lo){
tv.setText(String.valueOf(lo.getLongitude()));
// tv.setText(String.valueOf(lo.getLatitude()));
}
}
3.主布局
[html] view
plain copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.myapplication.MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
plain copy
1.获取权限
[html] view
plain copy
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.LOCATION_HARDWARE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
2.主函数
[html] view
plain copy
public class MainActivity extends AppCompatActivity {
private LocationManager syst;
<
1a68f
span style="margin:0px;padding:0px;border:none;color:#000000;background-color:inherit;"> private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
syst = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
tv = (TextView) findViewById(R.id.tv);
if (!syst.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 1);
return;
}
// String best = syst.getBestProvider(getcriteria(), true);
syst.addGpsStatusListener(gps);
// syst.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, lo);
syst.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 1, lo);
}
// 位置监听
LocationListener lo = new LocationListener() {
/**
* 位置信息变化时触发
*/
@Override
public void onLocationChanged(Location location) {
up(location);
// Log.d("aa", "时间:" + location.getTime());
// Log.d("aa", "经度:" + location.getLongitude());
// Log.d("aa", "纬度:" + location.getLatitude());
// Log.d("aa", "海拔:" + location.getAltitude());
}
/**
* GPS状态变化时触发
*/
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
/**
* 位置信息变化时触发
*/
@Override
public void onProviderEnabled(String s) {
}
/**
* GPS禁用时触发
*/
@Override
public void onProviderDisabled(String s) {
}
};
// 状态监听
GpsStatus.Listener gps=new GpsStatus.Listener() {
@Override
public void onGpsStatusChanged(int i) {
// switch (i) {
// case GpsStatus.GPS_EVENT_FIRST_FIX:
// Log.d("aa", "第一次定位");
// break;
// case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
// Log.d("aa", "卫星状态改变");
// // 获取当前状态
// GpsStatus gpsStatus = syst.getGpsStatus(null);
// // 获取卫星颗数的默认最大值
// int maxSatellites = gpsStatus.getMaxSatellites();
// // 创建一个迭代器保存所有卫星
// Iterator<GpsSatellite> iters = gpsStatus.getSatellites()
// .iterator();
// int count = 0;
// while (iters.hasNext() && count <= maxSatellites) {
// GpsSatellite s = iters.next();
// count++;
// }
// System.out.println("搜索到:" + count + "颗卫星");
// break;
//
// case GpsStatus.GPS_EVENT_STARTED:
// Log.d("aa", "定位启动");
// break;
// case GpsStatus.GPS_EVENT_STOPPED:
// Log.d("aa", "定位停止");
// break;
// }
}
};
// public Criteria getcriteria(){
// Criteria criteria = new Criteria();
// criteria.setAccuracy(Criteria.ACCURACY_FINE);
// return criteria;
// }
public void up(Location lo){
tv.setText(String.valueOf(lo.getLongitude()));
// tv.setText(String.valueOf(lo.getLatitude()));
}
}
3.主布局
[html] view
plain copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.myapplication.MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
相关文章推荐
- 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~
- 手机gps无法定位的解决方案
- 小马哥---安卓手机 关于加速手机的GPS定位速度 实现秒定位方法浅析
- 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~
- 判断是否为移动浏览器;判断是否支持滑动事件;通过手势来改变图片大小;使用手机GPS定位用户所在的城市;利用浏览器的cookie保存用户名;
- 最全的解决方案,安卓手机gps定位慢怎么办?轻松几步搞定
- GPS 定位获取 手机当前的位置
- 【转】Windows Mobile手机GPS定位
- 手机离线地图进行GPS定位
- 手机GPS定位导航
- GPS、Wifi等各种手机定位方式的含义及原理详解
- Smobiler实现手机GPS定位和调用地图的功能(开发日志十)
- Android学习之使用手机网络和GPS定位
- android 手机GPS 定位实践实记
- 手机GPS天线设计对GPS定位有影响
- 为何手机gps定位需要流量,而车载不需要?
- android手机gps定位开发省电要点
- Android项目实战--手机卫士10--GPS定位与发送短信指令
- 手机定位室内gps没信号
- 发现一个GPS网站定位手机用户位置的网站