爱玺玺

爱玺玺的生活日记本。wx:lb87626

android定位当前地址

代码


package com.example.locationdemo;


import java.util.List;


import android.support.v7.app.ActionBarActivity;

import android.location.Criteria;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.TextView;


public class MainActivity extends ActionBarActivity {


private TextView textView;

private LocationManager locationManager;

private MyLocationListener myLocationListener;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.textview);

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

// 获取定位方式

// 参数true获取所有定位方式

List<String> providers = locationManager.getProviders(true);

for (String loca : providers) {

System.out.println(loca);

}

// 获取最佳定位方式

Criteria criteria = new Criteria();

// 设置是否可以定位海拔,true,可以。只有gps才能定位海拔种类一定返回gps

criteria.setAltitudeRequired(true);

// 第二个参数enableOnly:true 定位可用久返回

String bestProvider = locationManager.getBestProvider(criteria, true);

System.out.println("最佳定位方式" + bestProvider);


myLocationListener = new MyLocationListener();

locationManager.requestLocationUpdates(bestProvider, 0, 0,

myLocationListener);

}


private class MyLocationListener implements LocationListener {

// 定位改版时调用

// location:当前位置

@Override

public void onLocationChanged(Location location) {

// 获取纬度

double latitude = location.getLatitude();

// 获取经度

double longitude = location.getLongitude();

textView.setText("longitude:" + longitude + " latitude" + latitude);

}


@Override

public void onStatusChanged(String provider, int status, Bundle extras) {

// TODO Auto-generated method stub


}


@Override

public void onProviderEnabled(String provider) {

// TODO Auto-generated method stub


}


@Override

public void onProviderDisabled(String provider) {

// TODO Auto-generated method stub


}

}

//当退出应用关闭gps

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

//低版本关闭gps定位,高版本中规定用户自己区决定关闭还是开启

locationManager.removeUpdates(myLocationListener);

}

}


权限配置


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.locationdemo"

    android:versionCode="1"

    android:versionName="1.0" >


    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="21" />

    <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"/>


    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <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>


</manifest>



界面

<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"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.example.locationdemo.MainActivity" >


    <TextView

        android:id="@+id/textview"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/hello_world" />


</RelativeLayout>






发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5