1.今天修补了一下之前的bug。之前的问题是。偶尔会出现定位失败。并且光标不显示的问题。
最后发现是因为android版本6.0以上的用户。在使用百度定位的时候需要一些另外的权限,并且代码本身不能自己设置的问题。最后完美解决。
主要是对百度定位的相关api的了解不够全面。明天将会主要用来研究怎样实现运动轨迹的显示。
具体的解决代码如下:
private static final int REQUEST_CODE = 1;
private void requestRunTimePermission() {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,Manifest.permission.ACCESS_COARSE_LOCATION)
|| ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION)
|| ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
|| ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,Manifest.permission.READ_PHONE_STATE)) {
/*
* 如果没有获得过用户的权限许可,则向用户申请
*/
Snackbar.make(MainActivity.this.findViewById(R.id.butttonunder2), "定位",
Snackbar.LENGTH_INDEFINITE).setAction("权限申请", new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
},REQUEST_CODE);
}
}).show();
} else {
/*
* 如果已经获得过用户的权限许可了,则直接申请运行时权限即可
*/
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
},REQUEST_CODE);
}
}