我使用telephonyManager.getCellLocation()
,我得到的结果是[-1,-1,0],但我无法从输出中理解。
这是任何类型的位置代码,因为我不认为它是任何位置的拉特朗。
提前感谢您的帮助
答案 0 :(得分:0)
您可以使用LocationManager.NETWORK_PROVIDER而不是LocationManager.GPS_PROVIDER来定位位置。 NETWORK_PROVIDER将在GSM或wifi上解析,这是可用的。显然,关闭wifi,将使用GSM。请记住,使用蜂窝网络准确到500米。
http://developer.android.com/guide/topics/location/obtaining-user-location.html有一些非常好的信息和示例代码。
完成OnCreate()中的大部分代码后,添加:
// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
makeUseOfNewLocation(location);
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
您还可以让您的活动实现LocationListener类,从而在您的活动中实现onLocationChanged()。 或者您可以使用this教程来获取lat和lang。