android studio上的百度定位的初始化
来源:互联网 发布:淘宝追评怎么修改 编辑:程序博客网 时间:2024/06/05 01:08
记录一下自己引入百度地图API的结果,调用了百度地图的定位,下面开始讲解:
1.下载官方百度地图SDK,详细的我就不说了,自己查就能查到了,然后根据自己的选择进行下载,别忘了申请密钥。
2.新建一个项目,导入jar包和so包,不知道的朋友可以点击下面的链接去查看如何导入:
http://blog.csdn.net/anny_lin/article/details/46763255 so包引入
jar包的引入只需要将jar包考入到libs里面,然后右键点击“add as library”就可以了
3.进行基础的配置,官方文档上有给出,当然你也可下载官方的Demo进行代码的查看与修改,我是基于官方demo进行修改的,修改后的代码如下,基本上面什么变化:
package demo.baidumap;import android.app.ProgressDialog;import android.os.Handler;import android.os.Message;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.RadioGroup;import android.widget.TextView;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;public class MainActivity extends AppCompatActivity { private LocationClient mLocationClient; private TextView LocationResult,ModeInfor;
//开启定位按钮 private Button startLocation; private RadioGroup selectMode,selectCoordinates; private EditText frequence; private LocationClientOption.LocationMode tempMode = LocationClientOption.LocationMode.Hight_Accuracy; private String tempcoor="gcj02"; private CheckBox checkGeoLocation; private Handler handler; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.location); mLocationClient = ((LocationApplication) getApplication()).mLocationClient; LocationResult = (TextView) findViewById(R.id.textView1); ((LocationApplication) getApplication()).mLocationResult = LocationResult; //开启定位按钮 startLocation = (Button) findViewById(R.id.addfence); handler=new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==2) { mLocationClient.stop(); progressDialog.dismiss(); } } }; //开始定位 startLocation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDialog=ProgressDialog.show(MainActivity.this,"aa","aa"); new Thread(new Runnable() { @Override public void run() { InitLocation(); mLocationClient.start(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(2); } }).start(); } }); } @Override protected void onStop() { // TODO Auto-generated method stub mLocationClient.stop(); super.onStop(); } private void InitLocation(){ LocationClientOption option = new LocationClientOption(); option.setLocationMode(tempMode);//���ö�λģʽ option.setCoorType(tempcoor);//���صĶ�λ����ǰٶȾ�γ�ȣ�Ĭ��ֵgcj02 int span=1000; try { span = Integer.valueOf(frequence.getText().toString()); } catch (Exception e) { } option.setScanSpan(span);//���÷���λ����ļ��ʱ��Ϊ5000ms option.setIsNeedAddress(true); mLocationClient.setLocOption(option); }}
其次是application文件
package demo.baidumap;import android.app.Application;import android.os.Vibrator;import android.util.Log;import android.widget.TextView;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.GeofenceClient;import com.baidu.location.LocationClient;/** */public class LocationApplication extends Application { /** * ��Application */ public LocationClient mLocationClient; public GeofenceClient mGeofenceClient; public MyLocationListener mMyLocationListener; public TextView mLocationResult,logMsg; public TextView trigger,exit; public Vibrator mVibrator; @Override public void onCreate() { super.onCreate(); mLocationClient = new LocationClient(this.getApplicationContext()); mMyLocationListener = new MyLocationListener(); mLocationClient.registerLocationListener(mMyLocationListener); } /** */ public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { //Receive Location StringBuffer sb = new StringBuffer(256); sb.append("time : "); sb.append(location.getTime()); sb.append("\nerror code : "); sb.append(location.getLocType()); sb.append("\nlatitude : "); sb.append(location.getLatitude()); sb.append("\nlontitude : "); sb.append(location.getLongitude()); sb.append("\nradius : "); sb.append(location.getRadius()); if (location.getLocType() == BDLocation.TypeGpsLocation){ sb.append("\nspeed : "); sb.append(location.getSpeed()); sb.append("\nsatellite : "); sb.append(location.getSatelliteNumber()); sb.append("\ndirection : "); sb.append("\naddr : "); sb.append(location.getAddrStr()); sb.append(location.getDirection()); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){ sb.append("\naddr : "); sb.append(location.getAddrStr()); //��Ӫ����Ϣ sb.append("\noperationers : "); sb.append(location.getOperators()); } logMsg(sb.toString()); Log.i("BaiduLocationApiDem", sb.toString()); } } /** * @param str */ public void logMsg(String str) { try { if (mLocationResult != null) mLocationResult.setText(str); } catch (Exception e) { e.printStackTrace(); } } /** * @author jpren * */ }
最后就是androidfest文件了
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="demo.baidumap" > <application android:name=".LocationApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> <intent-filter> <action android:name="com.baidu.location.service_v2.2" > </action> </intent-filter> </service> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你的密钥" /> </application> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission> <uses-permission android:name="android.permission.READ_LOGS" > </uses-permission> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /></manifest>
然后就可以进行基础的定位服务了,需要注意的是,你需要在真机上进行测试,虚拟机可能显示不出结果。
0 0
- android studio上的百度定位的初始化
- Android Studio上百度地图的显示
- 百度地图定位-android studio
- 实验6:Android地图定位-百度地图上定位自己所在的位置
- 实验6:Android地图定位-百度地图上定位自己所在的位置
- Android地图定位-百度地图上定位自己所在的位置
- Android地图定位-百度地图上定位自己所在的位置
- Android地图定位-百度地图上定位自己所在的位置
- 百度定位上的小bug
- 百度地图上定位自己的位置
- Android studio中使用百度地图api获取定位遇到了sdk初始化问题
- 解决百度地图定位初始化 先初始化到北京,后定位到所在地的问题
- Android Studio 百度地图定位、轨迹及所在位置与标注marker的距离
- android 百度地图初始化和定位
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- 关于android上的定位
- Mysql中一些比较有用的命令
- 【jQuery插件】-----页面滚动时动画wow.js
- linux scp限速传输
- MySQL详解(20)-----------数据库备份和还原
- 关于java使用jacob调用word,ppt,excel等的转化为html的问题
- android studio上的百度定位的初始化
- Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently
- MOAC 配置
- C语言实现双链表基本操作(创建、查找、插入、删除)
- Unity 3D知识体系结构
- 多工程运行于同一个tomcat下问题
- iOS下划线/虚线/删除线等等
- [XCode] 默认源文件和build目录
- C#开发Unity游戏教程之Scene视图与脚本的使用