`
as11051105
  • 浏览: 59329 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

android手机获取gps和基站的经纬度地址

阅读更多
<--界面-->
<?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基于Gps 定位和基站定位获取经纬度

    在Android平台上,获取设备位置信息是一项关键功能,通常可以通过GPS(全球定位系统)和基站定位两种方式实现。本文将深入探讨这两种方法,并结合提供的源码分析其工作原理和实现细节。 1. GPS定位: GPS定位是...

    获取移动基站LAC CELLID 以及基站经纬度,国家,省会,城市,详细地址代码

    如GPS定位、紧急呼叫定位等,我们需要获取基站的相关信息,其中包括逻辑接入控制区(Location Area Code,LAC)和小区识别码(Cell ID),以及基站的经纬度、所在国家、省会、城市和详细地址。以下将详细解释这些...

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    标题提到的“基于基站,APN,GPS,WiFi,Network 根据不同手机SIM卡获取经纬度”涉及了多种定位技术,每种都有其特性和应用场景。下面将详细介绍这些技术以及如何在Android中实现。 首先,我们来了解几种主要的定位...

    Android应用实现GPS定位返回经纬度Demo

    在Android平台上,开发一款应用以实现GPS定位并获取经纬度值是常见的需求。这个"Android应用实现GPS定位返回经纬度Demo"就是一个实例,它演示了如何有效地从Android系统的Location服务中获取地理位置信息。下面我们...

    android手机获取gps和基站的经纬度地址实现代码

    在Android开发中,获取设备的GPS(全球定位系统)和基站(网络定位)的经纬度地址是一项常见的任务,这有助于实现各种定位相关的功能,如导航、位置服务等。以下将详细讲解如何通过代码实现这一功能。 首先,...

    Android GPS获取当前经纬度坐标

    Android GPS获取当前经纬度坐标是 Android 开发中一个非常重要的知识点,涉及到 Android GPS 位置服务、Android API 和第三方地图 API 的使用。下面将从多方面详细介绍 Android GPS 获取当前经纬度坐标的知识点。 ...

    Android 获取当前经纬度

    总结,获取Android设备的当前经纬度涉及了Android的定位服务,包括GPS和网络定位,并且可以通过Geocoder进一步获取详细的地理位置信息。在实际开发中,为了提高用户体验,通常会结合这两种方式,优先尝试GPS定位,...

    android经纬度的获取

    在Android系统中,获取设备的经纬度位置是常见的需求,主要通过GPS(全球定位系统)、网络定位服务(如Wi-Fi和移动网络)以及离线地图数据来实现。本篇文章将详细探讨这三种方式以及如何在Android应用中实现它们。 ...

    GPS定位(经纬度获取)

    在IT行业中,GPS定位是一项关键的技术,特别是在...通过以上步骤,我们可以实现一个基本的GPS定位功能,实时获取并处理用户的经纬度信息。在不断发展的移动技术领域,GPS定位作为一项基础服务,将持续发挥其重要作用。

    Android获取当前位置的经纬度数据

    现在有这么一个需求:开启一个Service服务,获取当前...Android手机获取当前位置的方式:GPS定位,WIFI定位,基站定位,当前Demo使用GPS卫星定位,在LocationTool中返回Location、LocationManager两者对象,通过Loca

    Android应用源码之androidGPS及WIFI基站定位坐标源码_androidGPS.zip

    这份"Android应用源码之androidGPS及WIFI基站定位坐标源码"提供了实现这两种定位方式的详细示例,帮助开发者更好地理解和运用到自己的项目中。 一、Android GPS定位 Android系统通过Google Play服务提供的Location ...

    安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip

    这个压缩包“安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip”提供了一个实践示例,展示了如何在Android平台上实现基于GPS和WIFI的定位功能。下面将详细讲解这两个定位技术及其在源码中的应用。 1. GPS...

    android GPS和基站定位程序及源码.rar.rar

    在Android平台上,GPS(全球定位系统)和基站定位是两种主要的移动设备定位技术。GPS定位依赖于天空中的卫星信号,而基站定位则是通过测量手机与周围基站的信号强度来估算位置。这两种方法各有优缺点,GPS通常提供更...

    androidGPS及WIFI基站定位坐标源码.zip

    这份“androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了一些实现这两种定位方式的源代码,对于学习Android定位机制非常有帮助。接下来,我们将深入探讨这两种定位方法及其在源码中的实现细节。 1. GPS定位: ...

    百度地图获取gps经纬度

    在监听器的回调方法中,你可以获取到GPS经纬度和其他定位信息。 6. **处理室内定位**:百度地图API会自动处理室内定位问题,当GPS信号弱时,它会切换到其他定位模式。你可以通过Location的`isFromMockProvider()`...

    获取手机所在地的经纬度

    总之,获取手机所在地的经纬度是通过调用百度定位服务,结合设备的GPS、WiFi或基站信息来实现的。在实际开发中,还需要考虑到权限管理、异常处理、用户体验等多个方面,以确保定位功能的稳定性和可用性。

    基站id转换成经纬度的程序,2013年5月测试通过

    在Android平台上,实现基站ID到经纬度的转换是移动定位的一种常见方式,尤其在GPS信号不可用或者弱的情况下。下面将详细阐述这个过程中的关键知识点。 首先,基站定位的基本原理是三角测量。每个移动基站都有一个...

    androidgps基站与WIFI定位源码.zip

    本资源“androidgps基站与WIFI定位源码.zip”提供了一套实现GPS、基站和Wi-Fi定位功能的源代码,非常适合Android开发者学习和参考。 首先,我们要理解Android系统中的定位机制。Android提供了Location API,这是一...

Global site tag (gtag.js) - Google Analytics