Browse Source

GoogleLocationUtil.java
\

niusongtao@dl-cg.com 5 years ago
parent
commit
91212928a3

+ 5 - 0
base_library/src/main/java/com/mgtech/base_library/BaseLibApplication.java

@@ -10,6 +10,8 @@ import com.mgtech.base_library.router.RouterConfig;
 import com.mgtech.base_library.util.SharePrefUtil;
 import java.util.Locale;
 
+import cn.jpush.android.api.JPushInterface;
+
 import static com.mgtech.base_library.consts.SharePreConst.LANGUAGE;
 
 /**
@@ -32,6 +34,9 @@ public class BaseLibApplication extends Application {
         ContextUtils.initContext(this);
         setLocale();
         RouterConfig.init(this,true);
+
+        JPushInterface.setDebugMode(true); 	// 设置开启日志,发布时请关闭日志
+        JPushInterface.init(this);
     }
 
 

+ 31 - 1
base_library/src/main/java/com/mgtech/base_library/util/GoogleLocationUtil.java

@@ -26,7 +26,12 @@ import com.mgtech.base_library.R;
 import com.mgtech.base_library.bean.GPS;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
 import pub.devrel.easypermissions.AfterPermissionGranted;
 import pub.devrel.easypermissions.EasyPermissions;
 
@@ -48,6 +53,7 @@ public class GoogleLocationUtil{
 
     private final long MIN_TIME = 10 * 60 * 1000L;
     private final float MIN_DISTANCE = 200F;
+    private final long TIME_OUT = 10 * 1000;
     public final int REQUEST_LOCATION = 999;
     private MyLocationListener myLocationListener = new MyLocationListener();
     private LocationManager locationManager;
@@ -106,6 +112,9 @@ public class GoogleLocationUtil{
     public void stopLocation(){
         if (locationManager !=null)
             locationManager.removeUpdates(myLocationListener);
+
+        if (disposable != null && !disposable.isDisposed())
+            disposable.dispose();
     }
 
 
@@ -145,8 +154,11 @@ public class GoogleLocationUtil{
             return;
         }
 
+        //超时机制
+        locationTimeOut();
+
         Criteria criteria = new Criteria();
-        criteria.setAccuracy(Criteria.ACCURACY_COARSE);
+//        criteria.setAccuracy(Criteria.ACCURACY_COARSE);
         criteria.setAltitudeRequired(false);
         criteria.setBearingRequired(false);
         criteria.setCostAllowed(true);
@@ -303,4 +315,22 @@ public class GoogleLocationUtil{
         pButton.setTypeface(Typeface.DEFAULT_BOLD);
     }
 
+
+
+    /**
+     * @method  locationTimeOut
+     * @description 定位超时
+     * @date: 2020/4/16 16:16
+     * @author: 牛松涛
+     * @param
+     * @return void
+     */
+    private Disposable disposable;
+    private void locationTimeOut() {
+        disposable = Observable.intervalRange(0, TIME_OUT, 0, 1, TimeUnit.MILLISECONDS)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .doOnComplete(this::getLastKnownLocation).subscribe();
+    }
+
 }

+ 4 - 4
config.gradle

@@ -39,8 +39,8 @@ ext {
             zxing             : "1.3.7",
             liveBus           : "1.5.7",
             multidex          : "1.0.3",
-            jpush             : "3.5.6",
-            jcore             : "2.2.8",
+            jpush             : "3.8.6",
+            jcore             : "2.6.0",
             rxjavaForRoom     : "1.1.1",
     ]
 
@@ -105,8 +105,8 @@ ext {
             multidex           : "com.android.support:multidex:${depsVersion.multidex}",
 
             //极光推送
-            jpush              : "cn.jiguang.sdk:jpush:${depsVersion.jpush}",
-            jcore              : "cn.jiguang.sdk:jcore:${depsVersion.jcore}",
+            jpush              : "cn.jiguang.sdk:jpush-google:${depsVersion.jpush}",
+            jcore              : "cn.jiguang.sdk:jcore-google:${depsVersion.jcore}",
 
             pickerView         : "com.contrarywind:Android-PickerView:4.1.8",
             calendarview       : "com.haibin:calendarview:3.6.4",