在activity中,可以用下面的方式获取到经纬度:
public class MyLocation extends Activity {
LocationListener mLocationListener = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylocation);
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());
}
app.mBMapMan.start();
// 注册定位事件
mLocationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
if(location != null){
String strLog = String.format("您当前的位置:\r\n" + "纬度:%f\r\n" + "经度:%f", location.getLongitude(), location.getLatitude());
TextView mainText = (TextView)findViewById(R.id.textview);
mainText.setText(strLog);
}
}
}; }
@Override
protected void onPause() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication(); // 移除listener
app.mBMapMan.getLocationManager().removeUpdates(mLocationListener);
app.mBMapMan.stop();
super.onPause();
}
@Override
protected void onResume() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication(); // 注册Listener
app.mBMapMan.getLocationManager().requestLocationUpdates(mLocationListener);
app.mBMapMan.start();
super.onResume();
}
}但是我现在想把监听事件放到service中,想实现的功能是每隔1分钟就获取当前位置,service已经写好了,就是不知道怎么样在service中通过百度地图来获取位置。
之前想的办法是写个获取位置的工具类,但是在工具类中也无法实现百度定位,貌似百度地位只能用在activity/mapactivity中????
public class MyLocation extends Activity {
LocationListener mLocationListener = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylocation);
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());
}
app.mBMapMan.start();
// 注册定位事件
mLocationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
if(location != null){
String strLog = String.format("您当前的位置:\r\n" + "纬度:%f\r\n" + "经度:%f", location.getLongitude(), location.getLatitude());
TextView mainText = (TextView)findViewById(R.id.textview);
mainText.setText(strLog);
}
}
}; }
@Override
protected void onPause() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication(); // 移除listener
app.mBMapMan.getLocationManager().removeUpdates(mLocationListener);
app.mBMapMan.stop();
super.onPause();
}
@Override
protected void onResume() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication(); // 注册Listener
app.mBMapMan.getLocationManager().requestLocationUpdates(mLocationListener);
app.mBMapMan.start();
super.onResume();
}
}但是我现在想把监听事件放到service中,想实现的功能是每隔1分钟就获取当前位置,service已经写好了,就是不知道怎么样在service中通过百度地图来获取位置。
之前想的办法是写个获取位置的工具类,但是在工具类中也无法实现百度定位,貌似百度地位只能用在activity/mapactivity中????
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货