问题描述
- android 百度地图 定位失败
-
今天朋友写了一个关于百度定位的示例 在他哪里调试的时候好好的 为什么发给我导入工程时定位总是失败 。以为是K的问题 从新申请个K还是不得行。 提示错误import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; /** */ public class Location extends Activity{ private TextView info; private Button location; private LocationClientOption.LocationMode tempMode = LocationClientOption.LocationMode.Hight_Accuracy; private String tempcoor="gcj02"; private LocationClient mLocationClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.location); location = (Button)findViewById(R.id.location); info = (TextView)findViewById(R.id.info); mLocationClient = ((LocationApplication)getApplication()).mLocationClient; mLocationClient.registerLocationListener(new locationCallBack()); location.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { initLocation(); mLocationClient.start(); } }); } @Override protected void onStop() { super.onStop(); mLocationClient.stop(); } public class locationCallBack implements BDLocationListener{ @Override public void onReceiveLocation(BDLocation bdLocation) { //纬度 double latitude = bdLocation.getLatitude(); //经度 double lontitude = bdLocation.getLongitude(); info.setText("经度:" + lontitude + " 纬度:" + latitude); } } /** * 初始化定位信息 */ private void initLocation(){ LocationClientOption option = new LocationClientOption(); option.setLocationMode(tempMode);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备 option.setCoorType(tempcoor);//可选,默认gcj02,设置返回的定位结果坐标系, int span=1000; option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的 option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要 option.setOpenGps(true);//可选,默认false,设置是否使用gps option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果 option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死 option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要 option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近” option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到 mLocationClient.setLocOption(option); } } import android.app.Application; import android.app.Service; import android.os.Vibrator; import com.baidu.location.LocationClient; /** * 主Application,所有百度定位SDK的接口说明请参考线上文档:http://developer.baidu.com/map/loc_refer/index.html * * 百度定位SDK官方网站:http://developer.baidu.com/map/index.php?title=android-locsdk */ public class LocationApplication extends Application { public LocationClient mLocationClient; public Vibrator mVibrator; @Override public void onCreate() { super.onCreate(); mLocationClient = new LocationClient(this.getApplicationContext()); mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE); } }
<?xml version="1.0" encoding="utf-8"?>
package="com.example.xxxx.baidulocation" ><uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <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" /> <application android:name=".LocationApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".Location" 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需要写在application中 --> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="m6AcSrbpedMdpi5xWTSzitBM" /> </application>
请问这是什么情况啊
![图片说明](http://img.ask.csdn.net/upload/201508/12/1439373058_693518.png)
解决方案
Android之百度地图GPS定位
百度地图Android手机定位
Android_百度地图BaiduMap_LocationClient本地定位
解决方案二:
没有出始化!!!!SDKInitializer.initialize()注意在setcontentview之前。。。
解决方案三:
你的图片我看不到啊 。
解决方案四:
谢谢 各位 已经找到答案了
解决方案五:
拜托大哥。你找到答案倒是说啊
时间: 2024-10-12 14:34:34