问题描述
- 大牛请进,我有几个android百度定位的问题提问,,,
-
这是代码,第一个问题也是最最重要的问题:为什么定位启动textview没有显示手机位置,第二个问题:如果不用点击button开始定位,APP启动后自动定位的代码是!!!第三个问题:请求网络获取手机所在位置的权限提醒弹窗怎么取消,给她权限自动通过请求。。。谢谢大牛了!!!
解决方案
- 首先你的locationClient的初始化有问题。怎么看你在**onDestory()**里面初始化的呢?
- 不点击button开始定位,就把触发定位的事假放到**OnCreate()**里面就可以了。
- 至于权限提醒窗口。这个应该是取消不掉的。。你做的程序应该要给用户控制权,不可能自己后台把所有的权限都在用户不知道的情况下拿到、
这样非常不合理。谷歌也不允许、所以你可行、。。
不过需要提醒的是。你需要在相关代码出加上**try { } catch() { }** 防止用户取消权限授权、
参考:http://blog.csdn.net/crazy1235/article/details/43898451
http://blog.csdn.net/column/details/android-jacksen-map.html
解决方案二:
Android 百度地图定位(手动+自动)
android 百度地图 定位功能
如何向大牛提问?
解决方案三:
大牛,你在哪里?自己顶!!!
解决方案四:
开发大牛博客">加了这些代码以后textview也只是显示时间,没有显示经纬和地址,,,
解决方案五:
就是这样子,时间也只显示2015-,经纬和地址都不显示,,,快来人呐!!!
解决方案六:
以后别截图了,直接粘贴代码
解决方案七:
public class StartCanteenActivity extends Activity
{
private TextView locationInfoTextView = null;
private Button startButton = null;
private LocationClient locationClient = null;
private static final int UPDATE_TIME = 5000;
private static int LOCATION_COUTNS = 0;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_canteen);
locationInfoTextView = (TextView) this.findViewById(R.id.locationTextView);
startButton = (Button) this.findViewById(R.id.location_button);
locationClient = new LocationClient(this);
//设置定位条件
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); //是否打开GPS
option.setCoorType("bd09ll"); //设置返回值的坐标类型
option.setPriority(LocationClientOption.NetWorkFirst); //设置定位优先级
option.setScanSpan(UPDATE_TIME); //设置定时定位的时间间隔。单位毫秒
locationClient.setLocOption(option);
//注册位置监听器
locationClient.registerLocationListener(new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
if (location == null) {
return;
}
StringBuffer sb = new StringBuffer(256);
sb.append("Time : ");
sb.append(location.getTime());
sb.append("
Error code : ");
sb.append(location.getLocType());
sb.append("
Latitude : ");
sb.append(location.getLatitude());
sb.append("
Lontitude : ");
sb.append(location.getLongitude());
sb.append("
Address : ");
sb.append(location.getAddrStr());
sb.append(String.valueOf(LOCATION_COUTNS));
locationInfoTextView.setText(sb.toString());
}
});
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (locationClient == null) {
return;
}
if (locationClient.isStarted()) {
startButton.setText("Start");
locationClient.stop();
}
else {
startButton.setText("Stop");
locationClient.start();
locationClient.requestLocation();
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
if (locationClient != null && locationClient.isStarted()) {
locationClient.stop();
locationClient = null;
}
}
}
解决方案八:
大神,把触发定位的事件假放到**OnCreate()**里面要怎么做呢?_?
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_canteen);
然后嘞