android定位相关

来源:互联网 发布:域名投资的秘密 编辑:程序博客网 时间:2024/06/01 08:10

注意:

本程序精确定位,并且可以直接运行,注意添加权限


    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />   
    <uses-permission android:name="android.permission.ACCESS_FIND_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>


activity_main.xml

<LinearLayout 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:padding="10dp"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/ta"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="经度纬度"
        android:layout_marginTop="50dp"
        android:textSize="15sp" />


    <TextView
        android:id="@+id/tx"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:text="我的位置"
        android:textSize="15sp" />


</LinearLayout>


MainActivity.java


package com.example.zlocation;


import java.io.IOException;
import java.util.List;


import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;


public class MainActivity extends Activity {
private TextView ta;
private TextView myLocationText;
private String latLongString;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

myLocationText = (TextView) findViewById(R.id.tx);
ta = (TextView) findViewById(R.id.ta);

LocationManager locationManager;
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);


Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);


Location location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 2000, 10, locationListener);
}


private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}


public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}


public void onProviderEnabled(String provider) {
}


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


private void updateWithNewLocation(Location location) {
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "纬度:" + lat + "\n经度:" + lng;
ta.setText("经度"+lng+"纬度"+lat);
Log.e("WER", "纬度" + lat + "经度" + lng);
} else {
latLongString = "无法获取地理信息";
Log.e("WER", "无法获取地理信息");
}
List<Address> addList = null;
Geocoder ge = new Geocoder(this);
try {
addList = ge.getFromLocation(location.getLatitude(),
location.getLongitude(), 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (addList != null && addList.size() > 0) {
for (int i = 0; i < addList.size(); i++) {
Address ad = addList.get(i);
latLongString = ad.getLocality();
}
}
myLocationText.setText("您当前的位置是:\n" + latLongString);
Log.e("WER", "79" + latLongString);
}
}


0 0
原创粉丝点击