直接上源码,获取当前用户的经纬度!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>

更多相关文章

  1. 相机 android java.lang.RuntimeException: setParameters faile
  2. Android跳转系统相机或相册获取图片
  3. Android获取屏幕尺寸
  4. 【Android】Wifi管理与应用
  5. android计算器简单实现代码
  6. android html 读写文件
  7. android 外部启动activity,…
  8. android编程中setLayoutParams方法设置
  9. 视频的播放

随机推荐

  1. 在Ubuntu10.04上设置和下载android4.0源
  2. Android 自定义Progress Bar
  3. android SubscriptionInfo更新流程
  4. android 获取包名的两种方式
  5. sdk\tools目录下的traceview.bat无法找
  6. Android中将资源文件转为Bitmap对象
  7. android获取手机信息
  8. Android中贪吃蛇游戏的学习(四)
  9. SuperBrowser简单游览器Android
  10. android Fragment 学习资料推荐