Android中如何根据手机号获取用户所在地?
------解决方案--------------------
这个好像无法获取到。有点像电影里面的 通过雷达扫描正在打电话的人的位置。
------解决方案--------------------
是获取号码归属地吗?可以用webservice,或直接百度之后获取源码解析
是获取用这个手机的人在哪里吗?gps定位
是获取这个手机号在哪里吗?这个够呛能获取到
------解决方案--------------------
手机号本身无法定位的。
用gps
------解决方案--------------------
import java.util.Map;
import android.app.Activity;
import android.app.PendingIntent;
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.util.Log;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.taocaiku.gaea.common.TckApp;
import com.taocaiku.gaea.domain.Domain;
import com.taocaiku.gaea.domain.context.Container;
import com.taocaiku.gaea.domain.context.TckUrls;
import com.taocaiku.gaea.service.RegionService;
import com.taocaiku.gaea.service.SellerMarketService;
/**
* 手机坐标定位的工具类
* @author TCK-001
* @version 1.0
*/
public final class PointUtil {
private PointUtil() {}
private static PointUtil bean = new PointUtil();
private double[] myPoint = new double[3];
private boolean isEditPoint = false;
/**
* 经度
* */
public static final String LONGITUDE = "longitude";
/**
* 纬度
* */
public static final String LATITUDE = "latitude";
/** 天安门的坐标 */
public static final GeoPoint CENTER_POINT = new GeoPoint((int) (39.945d * 1E6), (int) (116.404d * 1E6));
/**
* 单例模式获得bean
* @return FileUtil
*/
public static PointUtil get() {
return bean;
}
private LocationListener listener = new LocationListener() {
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
}
public void onLocationChanged(Location location) {
if (location != null) {
double[] old = myPoint;
myPoint = new double[] { location.getLongitude(), location.getLatitude(), location.getAltitude() };
if (myPoint[0] <= 0
------解决方案--------------------
myPoint[1] <= 0) {return;}
if (old[0] != myPoint[0]
------解决方案--------------------
old[1] != myPoint[1]) {
if (MapUtil.get().getDistance(old, myPoint) > 500) {
editMemberPoint();
SellerMarketService.get().loadNearby();
SellerMarketService.get().editDistance();
}
if (MapUtil.get().getDistance(old, myPoint) > 1000
------解决方案--------------------
ToolUtil.get().isBlank(Container.city)) {
RegionService.get().pointCity();
}
doCallback();
}
}
}
};
private BDLocationListener baiduListener = new BDLocationListener() {
public void onReceivePoi(BDLocation location) {
if (null == location) {return;}
}
public void onReceiveLocation(BDLocation location) {
if (location != null) {
double[] old = myPoint;
myPoint = new double[] { location.getLongitude(), location.getLatitude(), location.getAltitude() };
if (myPoint[0] <= 0
------解决方案--------------------
myPoint[1] <= 0) {return;}
if (old[0] != myPoint[0]
------解决方案--------------------
old[1] != myPoint[1]) {
if (MapUtil.get().getDistance(old, myPoint) > 500) {
editMemberPoint();
SellerMarketService.get().loadNearby();
SellerMarketService.get().editDistance();
}
if (MapUtil.get().getDistance(old, myPoint) > 1000
------解决方案--------------------
ToolUtil.get().isBlank(Container.city)) {
RegionService.get().pointCity();
}
doCallback();
}
}
}
};
// 注册一个普通坐标
private void plainReg() {
LocationManager manager = (LocationManager) pointContext.getSystemService(Context.LOCATION_SERVICE);