您的位置:首页 > 移动开发 > Android开发

Android设置GPS及获取经纬度坐标

2012-09-21 11:16 519 查看
设置部分:
/**
* 设置GPS开启或关闭,入口参数为true时开启GPS,为false时关闭GPS
* */
public void setGPS(boolean on_off) {
boolean gpsEnabled = android.provider.Settings.Secure.isLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER);
Intent gpsIntent = new Intent();
gpsIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
gpsIntent.addCategory("android.intent.category.ALTERNATIVE");

if(on_off == true)
{
if(!gpsEnabled) {
gpsIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(this, 0, gpsIntent, 0).send();
} catch (CanceledException e) {
e.printStackTrace();
}
}
}
else {
if(gpsEnabled) {
gpsIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(this, 0, gpsIntent, 0).send();
} catch (CanceledException e) {
e.printStackTrace();
}
}
}
}


以上代码需要添加如下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

获取部分:
/**
* 获得经纬度函数
* */
public void getLongitudeAndLatitude() {
setGPS(true);

LocationManager loctionManager;
String contextService=Context.LOCATION_SERVICE;
//通过系统服务,取得LocationManager对象
loctionManager=(LocationManager) getSystemService(contextService);
String provider=LocationManager.GPS_PROVIDER;
Location location = loctionManager.getLastKnownLocation(provider);
if(location != null) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Toast.makeText(getApplicationContext(), String.valueOf(longitude)+ "," + String.valueOf(latitude),Toast.LENGTH_LONG).show();
}
}
以上代码需要添加如下权限:
< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">< /uses-permission>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: