直接上源码,获取当前用户的经纬度!MainActivity.java
package com.mixian.activity;
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.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button getLocaltionButton = (Button)findViewById(R.id.GetLocaltion);
getLocaltionButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
openGPSSettings();
getLocation();
}
});
}
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();
tv1.setText("维度:" + latitude+ "\n经度" + longitude);
try{
//直接调用图吧地图
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("geo:"+latitude+','+longitude+','+"北京市西城区阜外大街2号万通大厦");
intent.setData(uri);
intent.setClassName("com.mapbar.android.mapbarmap", "com.mapbar.android.mapbarmap.FilterServiceActivity");
startActivity(intent);
}catch(Exception ex){
ex.printStackTrace();
}
tv1.setText("地图在哪里?");
} else {
tv1.setText("无法获取地理信息");
}
}
//首先判断GPS模块是否存在或者是开启:
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();
return;
}
Toast.makeText(this, "请开启GPS!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0); //此为设置完成后返回到获取界面
}
//如果开启正常,则会直接进入到显示页面,如果开启不正常,则会进行到GPS设置页面:
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); // 通过GPS获取位置
updateToNewLocation(location);
// 设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,这样写主要为了方便)或最小位移变化超过N米
locationManager.requestLocationUpdates(provider, 100 * 1000, 500,new LocationListener() {
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.i(TAG, "onStatusChanged()");
}
public void onProviderEnabled(String provider) {
Log.i(TAG, "onProviderEnabled()");
}
public void onProviderDisabled(String provider) {
Log.i(TAG, "onProviderDisabled()");
}
public void onLocationChanged(Location location) {
updateToNewLocation(location);
Log.i(TAG, "onLocationChanged()");
}
});
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mixian.activity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
</manifest>
分享到:
相关推荐
GPS定位是通过接收多个卫星信号来确定设备的精确地理位置。在Android中,我们可以使用`LocationManager`服务来请求GPS定位服务。首先,需要在AndroidManifest.xml文件中添加必要的权限: ```xml ...
这是获取GPS定位的必要权限。 ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 2. **初始化LocationManager**:在应用程序中,我们可以通过Context的getSystemService方法...
本篇文章将深入探讨如何实现GPS定位功能,检测GPS状态,并实时采集当前经纬度信息。 首先,我们需要理解GPS定位的基本原理。GPS系统由24颗以上的卫星组成,这些卫星不断发送信号到地球表面。当用户设备(如智能手机...
"GPS定位获取经纬度"这个主题涉及到如何在应用中检测并利用GPS服务来获取用户的精确地理位置坐标,即经度和纬度。这里我们将深入探讨相关知识点。 首先,我们需要了解GPS的基本原理。GPS是一个全球卫星导航系统,...
标题提到的“基于基站,APN,GPS,WiFi,Network 根据不同手机SIM卡获取经纬度”涉及了多种定位技术,每种都有其特性和应用场景。下面将详细介绍这些技术以及如何在Android中实现。 首先,我们来了解几种主要的定位...
这个"Android GPS定位例子"是一个实现GPS定位功能的示例项目,它已经被测试并确认能够正常运行,尽管GPS定位通常需要一定时间来获取精确的位置信息。 Android系统提供了一套完整的API,即Location API,用于获取...
本文将深入探讨Android GPS定位的原理、API使用、权限管理以及优化策略。 一、Android GPS定位原理 1. GPS工作原理:GPS定位依赖于一组分布在地球轨道上的24颗卫星,通过接收至少四颗卫星的信号,计算出设备的...
- GPS定位:通过接收卫星信号来确定设备的位置,精度高,但需要开启GPS硬件并有清晰的天空视野。 - 网络定位:利用移动网络基站或Wi-Fi热点信息进行定位,精度较低,但无需直接接收卫星信号,室内也能工作。 2. *...
总的来说,理解并掌握在Android中如何获取GPS经纬度、计算距离和方位角是开发定位相关应用的基础。这涉及到对Android系统API的熟练使用,以及对地理坐标系统和导航原理的基本认识。通过实践和参考提供的教程资料,...
解决Android锁屏无法继续定位的问题,我在启动定位的时候提示了吐司,如果返回定位会显示"启动定位"四个字。在启动定位了之后,往本地写了一个txt文件, txt文件显示的是 “时间、经纬度”等一些信息。可查看确认...
要实现“GPS定位获取卫星个数并日志记录”,我们需要理解和利用Android的LocationManager服务、GPS定位API以及日志记录机制。以下将详细介绍这些知识点。 1. **LocationManager服务**: Android的LocationManager...
### Android GPS 获取经纬度详解 #### 一、引言 在Android开发中,获取设备的地理位置是一项非常重要的功能。这不仅对于地图应用至关重要,对于许多其他类型的应用也非常有用,比如天气预报、本地服务推荐等。本文...
这一服务主要依赖于GPS(全球定位系统)、Wi-Fi、移动网络和其他传感器数据来确定设备的位置。Android的位置服务提供了丰富的API,使得开发者能够轻松地集成地理位置功能到他们的应用中,无论是在前台运行还是在后台...
在Android系统中,内置GPS(Global Positioning System)是手机硬件层面提供的定位服务,它通过接收卫星信号来确定设备的精确位置。而百度GPS则是百度地图服务中的一个组件,是软件层面实现的定位功能,它结合了网络...
Android设备通过接收这些信号,计算出与各个卫星的距离,再通过三角定位原理确定设备的精确经纬度。为了确保定位准确,通常需要接收到至少四颗卫星的信号。 在Android中,实现GPS定位主要涉及到`LocationManager`...
经纬度是一种地理坐标系统,用于确定地球上任意一点的位置。经度是从本初子午线(通过英国格林尼治的经线)到目标地点所测量的角度,范围从0°到180°E和180°W。纬度则是在赤道(0°纬度)与目标地点之间的角度,...
本资源“androidgps基站与WIFI定位源码.zip”提供了一套实现GPS、基站和Wi-Fi定位功能的源代码,非常适合Android开发者学习和参考。 首先,我们要理解Android系统中的定位机制。Android提供了Location API,这是一...
- **原理**:GPS定位是通过接收至少4颗卫星的信号,计算出设备到每颗卫星的距离,进而确定三维坐标。 - **API**:Android的`LocationManager.requestLocationUpdates()`用于请求GPS位置更新,`LocationProvider`...
在IT行业中,GPS(全球定位系统,Global Positioning System)是一项至关重要的技术,它通过接收卫星信号来确定地球上任何位置的精确经纬度坐标。在软件开发、地理信息系统(GIS)、移动应用等领域,模拟GPS经纬度...