How to find user location using cell tower?

匿名 (未验证) 提交于 2019-12-03 01:29:01

问题:

How to find the user location using the cell tower in Android, or how to get the cell location based on the Cell ID in Android?

回答1:

class MyLocationActivity      extends MapActivity {     MapController mapController;     MyPositionOverlay positionOverlay;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         MapView mapView = (MapView) findViewById(R.id.mapview);         mapController = mapView.getController();         // Configure the map display options         mapView.setSatellite(true);         mapView.setStreetView(true);         mapView.displayZoomControls(false);         mapController.setZoom(17);         // Add the MyPositionOverlay         positionOverlay = new MyPositionOverlay();         List overlays = mapView.getOverlays();         overlays.add(positionOverlay);         LocationManager locationmanager;         String context=Context.LOCATION_SERVICE;         locationmanager=(LocationManager) getSystemService(context);         String provider=LocationManager.NETWORK_PROVIDER;         Location location= locationmanager.getLastKnownLocation(provider);         updateWithNewLocation(location);     }     private void updateWithNewLocation(Location location) {         if(location!=null){             positionOverlay.setLocation(location);             Double lat=location.getLatitude()*1E6;             Double lon=location.getLongitude()*1E6;             GeoPoint point = new GeoPoint(lat.intValue(),lon.intValue());             mapController.animateTo(point);         }         else{           }      }      @Override     protected boolean isRouteDisplayed() {         // TODO Auto-generated method stub         return false;     } }


回答2:

Use the LocationManager to register for location updates. You indicate which level of granularity you want by specifying a provider. For cell tower updates, use the NETWORK_PROVIDER.



回答3:

and MyPositionOverlay is also here.....

public class MyPositionOverlay extends Overlay {     private final int mRadius = 5;     Location location;      public Location getLocation() {         return location;     }      public void setLocation(Location location) {         this.location = location;     }      @Override     public void draw(Canvas canvas, MapView mapView, boolean shadow) {         Projection projection = mapView.getProjection();         if (shadow == false) {             // Get the current location             Double latitude = location.getLatitude()*1E6;             Double longitude = location.getLongitude()*1E6;             GeoPoint geoPoint;             geoPoint = new GeoPoint(latitude.intValue(),longitude.intValue());              // Convert the location to screen pixels             Point point = new Point();             projection.toPixels(geoPoint, point);             RectF oval = new RectF(point.x - mRadius, point.y - mRadius,                 point.x + mRadius, point.y + mRadius);              // Setup the paint             Paint paint = new Paint();             paint.setARGB(250, 255, 0, 0);             paint.setAntiAlias(true);             paint.setFakeBoldText(true);             Paint backPaint = new Paint();             backPaint.setARGB(175, 50, 50, 50);             backPaint.setAntiAlias(true);             RectF backRect = new RectF(point.x + 2 + mRadius, point.y - 3*mRadius,                 point.x + 65, point.y + mRadius);              // Draw the marker             canvas.drawOval(oval, paint);             //canvas.drawLines(pts, paint);             canvas.drawRoundRect(backRect, 5, 5, backPaint);             canvas.drawText("I am here", point.x + 2*mRadius, point.y, paint);         }         super.draw(canvas, mapView, shadow);     } }


回答4:

You can find LAC (location area code) From cell tower By API ericsson

https://labs.ericsson.com/apis/mobile-location/documentation



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!