android手机获取gps和基站的经纬度地址实现代码
时间:2022-04-05 03:03:00
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFD3D7DF"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/location"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="20dip"
android:background="@drawable/bg_frame"
android:gravity="center_vertical"
android:orientation="vertical"
android:paddingBottom="2dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip" >
<TextView
android:id="@+id/providerTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="获取经纬度:"
android:textColor="#007979" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/providerGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/gpsProvide"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="gps"
android:textColor="#005AB5" />
<RadioButton
android:id="@+id/networkProvide"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="基站"
android:textColor="#005AB5" />
</RadioGroup>
<ImageButton
android:id="@+id/bestLocationProId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loction" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="最佳选择方式:"
android:textColor="#005AB5" />
<TextView
android:id="@+id/locationProId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#8F4586" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="经度:"
android:textColor="#005AB5" />
<EditText
android:id="@+id/latEditTextId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:textColor="#8F4586" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="纬度:"
android:textColor="#005AB5" />
<EditText
android:id="@+id/lonEditTextId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:textColor="#8F4586" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<---activity->
package com.talkweb.mobileapp;
import java.text.DecimalFormat;
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.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.RadioGroup.OnCheckedChangeListener;
/**
*
* @author Mr.Z
* @time 2012-5-16
*
*/
public class LocationappActivity extends Activity {
private ImageButton btnGetBestLocationPro;
private EditText txtLat;
private EditText txtLon;
private TextView txtLocationPro;
private LocationManager locationManager;
private DecimalFormat format;
private String provider;
private RadioGroup providerGroup;
private RadioButton radGps;
private RadioButton radNetwork;
private String latStr;
private String lonStr;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
btnGetBestLocationPro = (ImageButton) findViewById(R.id.bestLocationProId);
btnGetBestLocationPro.setOnClickListener(new GetBestLocationProListener());
txtLat = (EditText) findViewById(R.id.latEditTextId);
txtLon = (EditText) findViewById(R.id.lonEditTextId);
txtLocationPro = (TextView) findViewById(R.id.locationProId);
format = new DecimalFormat("#.000000");
locationManager = (LocationManager) LocationappActivity.this.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(false);
criteria.setSpeedRequired(false);
criteria.setCostAllowed(false);
provider = locationManager.getBestProvider(criteria, false);
txtLocationPro.setText(provider);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());
providerGroup = (RadioGroup) findViewById(R.id.providerGroup);
radGps = (RadioButton) findViewById(R.id.gpsProvide);
radNetwork = (RadioButton) findViewById(R.id.networkProvide);
providerGroup.setOnCheckedChangeListener(new LocationProvideCheckedlistener());
if (provider.equals(LocationManager.GPS_PROVIDER)) {
System.out.println("gps");
radGps.setSelected(true);
radGps.setChecked(true);
} else if (provider.equals(LocationManager.NETWORK_PROVIDER)) {
System.out.println("network");
radNetwork.setSelected(true);
radNetwork.setChecked(true);
}
}
private class GetBestLocationProListener implements OnClickListener {
@Override
public void onClick(View v) {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(false);
criteria.setSpeedRequired(false);
criteria.setCostAllowed(false);
String provider = locationManager.getBestProvider(criteria, false);
txtLocationPro.setText(provider);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
}
}
private class TestLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
double lat = location.getLatitude();
double lon = location.getLongitude();
latStr = format.format(lat);
lonStr = format.format(lon);
txtLat.setText(latStr);
txtLon.setText(lonStr);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
private class LocationProvideCheckedlistener implements OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == radGps.getId()) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());
} else if (checkedId == radNetwork.getId()) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
}
}
}
}
权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<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_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
标签:android,经纬度
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android中基于XMPP协议实现IM聊天程序与多人聊天室
2022-05-06 07:37:51
![](https://img.aspxhome.com/file/2023/6/123366_0s.jpg)
Java中常见的编码集问题总结
2023-11-29 01:40:04
![](https://img.aspxhome.com/file/2023/5/60115_0s.png)
java实现拼图游戏
2022-09-21 11:14:19
![](https://img.aspxhome.com/file/2023/8/119138_0s.jpg)
Android蓝牙库FastBle的基础入门使用
2021-09-21 07:34:21
java实现点击按钮弹出新窗体功能
2022-02-18 14:39:55
![](https://img.aspxhome.com/file/2023/4/119154_0s.jpg)
MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题
2023-11-25 05:43:49
mybatis-plus update更新操作的三种方式(小结)
2023-10-08 14:05:08
![](https://img.aspxhome.com/file/2023/9/62639_0s.png)
深入理解Java中的克隆
2023-03-14 02:59:14
C#常见的几种集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍历方法对比
2021-07-25 17:00:04
深入第K大数问题以及算法概要的详解
2022-05-22 16:52:29
Java中synchronized关键字引出的多种锁 问题
2021-06-05 04:42:45
![](https://img.aspxhome.com/file/2023/9/99929_0s.jpg)
java8 stream多字段排序的实现
2021-07-30 17:47:47
C#对DataTable中的某列进行分组
2021-12-10 23:06:45
![](https://img.aspxhome.com/file/2023/5/104375_0s.jpg)
C#实现json格式转换成对象并更换key的方法
2021-12-23 00:09:39
深入了解c# 信号量和互斥体
2022-09-19 11:07:47
![](https://img.aspxhome.com/file/2023/4/113864_0s.png)
Android自定义UI实现微信语音
2022-04-18 10:47:41
C++实现leetcode(3.最长无重复字符的子串)
2023-06-25 03:17:22
Java内置GUI Frame类的使用
2021-10-25 18:06:49
![](https://img.aspxhome.com/file/2023/7/87187_0s.png)
SpringBoot Web详解静态资源规则与定制化处理
2022-01-23 16:19:57
![](https://img.aspxhome.com/file/2023/6/80966_0s.png)
浅谈java中BigDecimal的equals与compareTo的区别
2023-09-02 07:20:22