Browse Source

彻底解决百度地图无法定位顽疾问题-10-12;

Arison 9 years ago
parent
commit
a5405c8905

+ 13 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java

@@ -10,6 +10,7 @@ import com.baidu.location.LocationClient;
 import com.baidu.location.LocationClientOption;
 import com.baidu.location.Poi;
 import com.xzjmyk.pm.activity.sp.LocationSp;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 
 import java.util.List;
 
@@ -52,7 +53,7 @@ public class BdLocationHelper {
         option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
         option.setEnableSimulateGps(true);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
         option.setNeedDeviceDirect(false);
-        option.disableCache(false);
+       // option.disableCache(true);
         mLocationClient.setLocOption(option);
         requestLocation();//重新定位
     }
@@ -68,7 +69,9 @@ public class BdLocationHelper {
         if (!mLocationClient.isStarted()) {
             mFaildCount = 0;
             mLocationClient.start();
-            Log.i("roamaer", "requestLocation:开始定位!" );
+            Log.i("roamaer", "requestLocation:开始定位!");
+            Log.i("roamaer","requestLocation:是否不能缓存:" + mLocationClient.getLocOption().isDisableCache() );
+            
         } else {
             int scanSpan = mLocationClient.getLocOption().getScanSpan();
             if (scanSpan < 1000) {
@@ -98,11 +101,10 @@ public class BdLocationHelper {
                 if (listener != null) {
                     listener.result(false);
                 }
+              
                 return;
             }
-            if (listener != null) {
-                listener.result(true);
-            }
+           
             // 百度定位成功
             mLongitude = location.getLongitude();
             mLatitude = location.getLatitude();
@@ -131,12 +133,18 @@ public class BdLocationHelper {
 
             if (AppConfig.DEBUG) {
                 Log.d(AppConfig.TAG, "百度定位信息  mLongitude:" + mLongitude + "  mLatitude:" + mLatitude + "  mAddressDetail:" + mAddress);
+                Log.d(AppConfig.TAG, "resultCode:"+resultCode);
+                ToastUtil.showToast(mContext, "定位码:" + resultCode);
             }
             mLocationClient.stop();
             // if (isTimingScan()) {// 停止定时定位
             // mLocationClient.getLocOption().setScanSpan(100);
             // }
             mContext.sendBroadcast(new Intent(ACTION_LOCATION_UPDATE));// 发送广播
+            if (listener != null) {
+                ToastUtil.showToast(mContext,pois.get(0).getName()+"定位码:"+resultCode);
+                listener.result(true);
+            }
         }
 
     };

+ 24 - 19
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/BaseInfoActivity.java

@@ -52,8 +52,6 @@ import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.view.crouton.Crouton;
-import com.xzjmyk.pm.activity.view.crouton.LifecycleCallback;
 import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
 import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
@@ -297,11 +295,14 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
             public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
                 Log.i(TAG, "onDateTimePicked:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00");
                 GregorianCalendar calendar = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month) - 1, Integer.parseInt(day));
-                mTempData.setBirthday(TimeUtils.getSpecialBeginTime(tv_birthday, calendar.getTime().getTime() / 1000));
+              
                 long currentTime = System.currentTimeMillis() / 1000;
                 long birthdayTime = calendar.getTime().getTime() / 1000;
                 if (birthdayTime > currentTime) {
                     ToastUtil.showToast(mContext, "亲!您的出生日期已经超过现在了哦!");
+                }else{
+                    mTempData.setBirthday(TimeUtils.getSpecialBeginTime(tv_birthday, calendar.getTime().getTime() / 1000));
+                    updateData();
                 }
             }
         });
@@ -379,12 +380,15 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
                 mTempData.setProvinceId(provinceId);
                 mTempData.setCityId(cityId);
                 mTempData.setAreaId(countyId);
+                
+                updateData();//更新数据
             }
         } else if (requestCode == UPDATE_NICKNAME && data != null) {
             mNickname = data.getStringExtra("newnickname");
             if (mNickname != null) {
                 tv_nickname.setText(mNickname);
-//                mTempData.setNickName(mNickname);
+                mTempData.setNickName(mNickname);
+                updateData();
             }
         } else if (requestCode == UPDATE_SEX && data != null) {
             mSex = data.getStringExtra("newsex");
@@ -395,6 +399,7 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
                 } else if (mSex.equals("女")) {
                     mTempData.setSex(0);
                 }
+                updateData();
             }
         }
 
@@ -493,19 +498,19 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
             uploadAvatar(mCurrentFile);
         } else {
             ProgressDialogUtil.dismiss(mProgressDialog);
-            Crouton crouton = Crouton.makeText(this, "保存成功", 0xff99cc00, 1000);
-            crouton.setLifecycleCallback(new LifecycleCallback() {
-                @Override
-                public void onDisplayed() {
-
-                }
-
-                @Override
-                public void onRemoved() {
-                    finish();
-                }
-            });
-            crouton.show();
+//            Crouton crouton = Crouton.makeText(this, "保存成功", 0xff99cc00, 1000);
+//            crouton.setLifecycleCallback(new LifecycleCallback() {
+//                @Override
+//                public void onDisplayed() {
+//
+//                }
+//
+//                @Override
+//                public void onRemoved() {
+//                    
+//                }
+//            });
+//            crouton.show();
         }
 
     }
@@ -635,11 +640,11 @@ public class BaseInfoActivity extends BaseActivity implements View.OnClickListen
 
         if (mUser != null && !mUser.equals(mTempData)) {// 数据改变了,提交数据
             Log.d("wang", "数据改变了,提交数据");
-            updateData();
+          //  updateData();
         }
         if (mCurrentFile != null && mCurrentFile.exists()) {
             Log.d("wang", "uploadAvatar");
-            uploadAvatar(mCurrentFile);
+          //  uploadAvatar(mCurrentFile);
         }
     }
 

+ 14 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/me/UpdateSexActivity.java

@@ -8,8 +8,6 @@ import android.widget.LinearLayout;
 
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.view.crouton.Crouton;
-import com.xzjmyk.pm.activity.view.crouton.LifecycleCallback;
 
 /**
   * @desc:更新性别
@@ -68,19 +66,19 @@ public class UpdateSexActivity extends BaseActivity implements View.OnClickListe
                 break;
         }
         setResult(22, intent);
-        Crouton crouton = Crouton.makeText(UpdateSexActivity.this, "切换成功", 0xff99cc00, 1000);
-        crouton.setLifecycleCallback(new LifecycleCallback() {
-            @Override
-            public void onDisplayed() {
-                mMaleCheckBox.setClickable(false);
-                mFemaleCheckBox.setClickable(false);
-            }
-
-            @Override
-            public void onRemoved() {
-                UpdateSexActivity.this.finish();
-            }
-        });
-        crouton.show();
+//        Crouton crouton = Crouton.makeText(UpdateSexActivity.this, "切换成功", 0xff99cc00, 1000);
+//        crouton.setLifecycleCallback(new LifecycleCallback() {
+//            @Override
+//            public void onDisplayed() {
+//                mMaleCheckBox.setClickable(false);
+//                mFemaleCheckBox.setClickable(false);
+//            }
+//
+//            @Override
+//            public void onRemoved() {
+//               // UpdateSexActivity.this.finish();
+//            }
+//        });
+//        crouton.show();
     }
 }

+ 9 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/BasicInfoEditActivity.java

@@ -158,9 +158,9 @@ public class BasicInfoEditActivity extends BaseActivity implements View.OnClickL
 //                showSelectSexDialog();
                 break;
             case R.id.birthday_select_rl:
-                showSelectBirthdayDialog();
+                showSelectBirthdayDialog();//选择生日
                 break;
-            case R.id.city_select_rl:
+            case R.id.city_select_rl: //选择城市
                 Intent intent = new Intent(BasicInfoEditActivity.this, SelectAreaActivity.class);
                 intent.putExtra(SelectAreaActivity.EXTRA_AREA_TYPE, Area.AREA_TYPE_PROVINCE);
                 intent.putExtra(SelectAreaActivity.EXTRA_AREA_PARENT_ID, Area.AREA_DATA_CHINA_ID);// 直接选择中国,
@@ -256,6 +256,9 @@ public class BasicInfoEditActivity extends BaseActivity implements View.OnClickL
                 mTempData.setProvinceId(provinceId);
                 mTempData.setCityId(cityId);
                 mTempData.setAreaId(countyId);
+                
+                //选择城市后
+                updateData();
             }
 
         }
@@ -287,11 +290,14 @@ public class BasicInfoEditActivity extends BaseActivity implements View.OnClickL
             @Override
             public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                 GregorianCalendar calendar = new GregorianCalendar(year, monthOfYear, dayOfMonth);
-                mTempData.setBirthday(TimeUtils.getSpecialBeginTime(mBirthdayTv, calendar.getTime().getTime() / 1000));
+                
                 long currentTime = System.currentTimeMillis() / 1000;
                 long birthdayTime = calendar.getTime().getTime() / 1000;
                 if (birthdayTime > currentTime) {
                     ToastUtil.showToast(mContext, "亲!您的出生日期已经超过现在了哦!");
+                }else{
+                    mTempData.setBirthday(TimeUtils.getSpecialBeginTime(mBirthdayTv, calendar.getTime().getTime() / 1000));
+                    updateData();
                 }
             }
         }, date.getYear() + 1900, date.getMonth(), date.getDate());