Commit bf4449441783d0c922f421db7da03c734f52aa7f

Authored by YangShuai
1 parent 93304d15

1 修改检测gps是否开启工具类

app/strike/build.gradle
  1 +// com.android.application 表示这是一个应用程序模块,可直接运行
1 2 apply plugin: 'com.android.application'
2 3  
3 4 static def stringValue(def value) {
... ... @@ -15,9 +16,10 @@ android {
15 16 targetSdkVersion 29
16 17 versionCode 1
17 18 versionName "1.0"
18   -
19 19 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
20 20 consumerProguardFiles 'consumer-rules.pro'
  21 + // 当方法数超过65535(方法的索引使用的是一个short值,
  22 + // 而short最大值是65535)的时候允许打包成多个dex文件,动态加载dex。这里面坑很深啊
21 23 multiDexEnabled true
22 24 }
23 25 signingConfigs {
... ... @@ -40,7 +42,11 @@ android {
40 42 buildTypes {
41 43 debug {
42 44 signingConfig signingConfigs.debugConfig
43   - zipAlignEnabled true
  45 + zipAlignEnabled true // 是否支持zip
  46 +// shrinkResources true // 移除无用的resource文件
  47 + minifyEnabled false // 是否对代码进行混淆,true表示混淆
  48 +// proguardFiles getDefaultProguardFile('proguard-android.txt'),
  49 +// 'proguard-rules.pro'
44 50 //测试版本1
45 51 // signingConfig signingConfigs.releaseConfig
46 52 // versionNameSuffix '-preview'
... ... @@ -94,8 +100,13 @@ android {
94 100 }
95 101 release {
96 102 signingConfig signingConfigs.releaseConfig
97   - zipAlignEnabled true
98   - debuggable = true
  103 + zipAlignEnabled true // 是否支持zip
  104 +// shrinkResources true // 移除无用的resource文件
  105 + minifyEnabled false // 是否对代码进行混淆,true表示混淆
  106 + debuggable false //是否支持调试
  107 +// proguardFiles getDefaultProguardFile('proguard-android.txt'),
  108 +// 'proguard-rules.pro'
  109 +
99 110 resValue("string", "app_name", "网家家")
100 111 buildConfigField("boolean", "VERSION_AS_DEBUG", "false")
101 112 buildConfigField("String", "APP_ID", stringValue("769_jetj7bq525"))
... ...
app/strike/src/main/AndroidManifest.xml
... ... @@ -18,8 +18,9 @@
18 18 android:theme="@style/AppTheme">
19 19 <activity android:name=".demo.activity.DemoActivity" />
20 20 <activity android:name=".MyActivity"></activity>
21   - <activity android:name=".imgutil.ImgActivity"/>
  21 + <activity android:name=".imgutil.ImgActivity" />
22 22 <activity android:name=".MainActivity">
  23 +
23 24 <intent-filter>
24 25 <action android:name="android.intent.action.MAIN" />
25 26  
... ...
app/strike/src/main/java/com/cnlive/strike/MainActivity.java
... ... @@ -30,7 +30,7 @@ public class MainActivity extends AppCompatActivity {
30 30 findViewById(R.id.go_to).setOnClickListener(new View.OnClickListener() {
31 31 @Override
32 32 public void onClick(View v) {
33   - startActivity(new Intent(MainActivity.this, RunLineActivity.class));
  33 + startActivity(new Intent(MainActivity.this, LoginActivity.class));
34 34 // finish();
35 35 }
36 36 });
... ...
app/strike/src/main/java/com/cnlive/strike/MyActivity.java
... ... @@ -4,6 +4,7 @@ package com.cnlive.strike;
4 4 import android.content.Intent;
5 5 import android.text.TextUtils;
6 6  
  7 +import com.alibaba.android.arouter.facade.annotation.Route;
7 8 import com.cnlive.core.libs.base.frame.activity.BaseActivity;
8 9 import com.cnlive.moudle.pedometer.commonInfo.CommonInfo;
9 10 import com.cnlive.moudle.pedometer.ui.activity.RunLineActivity;
... ... @@ -11,7 +12,7 @@ import com.cnlive.strike.user.auth.UserService;
11 12 import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo;
12 13 import com.cnlive.strike.xiaojiaspeaker.ui.activity.AllDeviceActivity;
13 14  
14   -
  15 +@Route(path = "/strick/MyActivity")
15 16 public class MyActivity extends BaseActivity {
16 17  
17 18 @Override
... ...
build.gradle
... ... @@ -51,6 +51,7 @@ allprojects {
51 51 android {
52 52 compileSdkVersion 29
53 53 buildToolsVersion "29.0.0"
  54 + // defaultConfig 闭包:默认配置、应用程序包名、最小sdk版本、目标sdk版本、版本号、版本名称;
54 55 defaultConfig {
55 56 if (minSdkVersion == null) minSdkVersion 21
56 57 if (targetSdkVersion == null) targetSdkVersion 29
... ... @@ -86,9 +87,15 @@ allprojects {
86 87 enabled true
87 88 }
88 89  
  90 + // multiDex的一些相关配置,这样配置可以让你的编译速度更快
89 91 dexOptions {
90   - javaMaxHeapSize '4g'
  92 + // 让它不要对Lib做preDexing
  93 + preDexLibraries = false
  94 + // 开启incremental dexing,优化编译效率,这个功能android studio默认是关闭的。
  95 +// incremental true
  96 + javaMaxHeapSize "4g" // 增加java堆内存大小
91 97 }
  98 + //signingConfigs 闭包:签名信息配置;
92 99 signingConfigs {
93 100 debugConfig {
94 101 storeFile file("www.cnlive.com.key")
... ... @@ -146,15 +153,15 @@ task clean(type: Delete) {
146 153  
147 154 //配置全局变量
148 155 ext {
149   - compileSdkVersion=29
  156 + compileSdkVersion = 29
150 157 libMediaPicker = '1.6.0'
151 158 // loading动画
152 159 avi = "2.1.3"
153 160 //蓝牙
154   - BleLib="2.3.4"
  161 + BleLib = "2.3.4"
155 162 //动画大全
156   - viewAnimationsEasing='2.0@aar'
157   - viewAnimationsAndroid='2.3@aar'
  163 + viewAnimationsEasing = '2.0@aar'
  164 + viewAnimationsAndroid = '2.3@aar'
158 165 libEmoj = '2.1.0'
159 166 libLargeImage = '1.0.1'
160 167 //SmartRefresh
... ...
cloud/user/src/main/java/com/cnlive/strike/user/frame/view/QuickLoginView.java
... ... @@ -208,6 +208,8 @@ public class QuickLoginView extends BaseView {
208 208 successInfo.setClickAd(fragment.clickAd);
209 209 successInfo.setTagShare(fragment.tagShare);
210 210 successInfo.setTagMsg(fragment.tagMsg);
  211 + ARouter.getInstance().build("/strick/MyActivity")
  212 + .navigation(getContext());
211 213 if (isNewUser) {
212 214 // HelperUtil.isNewUser(fragment.getActivity(), successInfo, isHasOtherUserInfo);
213 215 } else {
... ...
core/base/src/main/java/com/cnlive/core/libs/base/frame/activity/BaseActivity.java
... ... @@ -80,7 +80,7 @@ public abstract class BaseActivity&lt;V extends BaseView, P extends BasePresenter&lt;V
80 80 //是否显示状态栏
81 81 private boolean isShowStatusBar = true;
82 82 //是否允许旋转屏幕
83   - private boolean isAllowScreenRoate = true;
  83 + private boolean isAllowScreenRoate = false;
84 84 public Context context;
85 85 /*******************************************/
86 86 private int stateBarColor = -1;//状态栏颜色
... ... @@ -137,8 +137,6 @@ public abstract class BaseActivity&lt;V extends BaseView, P extends BasePresenter&lt;V
137 137 }
138 138 //设置屏幕是否可旋转
139 139 if (!isAllowScreenRoate) {
140   - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
141   - } else {
142 140 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
143 141 }
144 142 //设置binding数据
... ... @@ -148,13 +146,21 @@ public abstract class BaseActivity&lt;V extends BaseView, P extends BasePresenter&lt;V
148 146 initView();
149 147 //设置数据
150 148 initData();
151   -// if (isOpenSwipBack) {
152   -// mHelper = new SwipeBackActivityHelper(this);
153   -// mHelper.onActivityCreate();
154   -//
155   -// }
156 149 }
157 150  
  151 + /**
  152 + * 显示竖屏
  153 + */
  154 + public void showPortraitScreen() {
  155 + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  156 + }
  157 +
  158 + /**
  159 + * 显示横屏
  160 + */
  161 + public void showLandscapeScreen() {
  162 + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  163 + }
158 164  
159 165 protected void initParam() {
160 166 }
... ...
core/base/src/main/java/com/cnlive/core/libs/base/frame/fragment/BaseFragment.java
... ... @@ -2,6 +2,7 @@ package com.cnlive.core.libs.base.frame.fragment;
2 2  
3 3 import android.app.Activity;
4 4 import android.content.Intent;
  5 +import android.content.pm.ActivityInfo;
5 6 import android.os.Bundle;
6 7 import android.view.LayoutInflater;
7 8 import android.view.View;
... ... @@ -66,9 +67,9 @@ public abstract class BaseFragment&lt;V extends BaseView, P extends BasePresenter&lt;V
66 67 public void onCreate(Bundle savedInstanceState) {
67 68 super.onCreate(savedInstanceState);
68 69 if (getActivity() == null) return;
  70 + me = (BaseActivity) getActivity();
69 71 //创建订阅映射
70 72 SubscriptionManager.getInstance().setCurrentDisposables(TAG);
71   - me = (BaseActivity) getActivity();
72 73 mDelegate.onCreate(savedInstanceState);
73 74 mSwipeDelegate.onCreate(savedInstanceState);
74 75 setSwipeBackEnable(me.isOpenSwipBack());
... ... @@ -180,6 +181,20 @@ public abstract class BaseFragment&lt;V extends BaseView, P extends BasePresenter&lt;V
180 181 }
181 182  
182 183 /**
  184 + * 显示竖屏
  185 + */
  186 + public void showPortraitScreen() {
  187 + me.showPortraitScreen();
  188 + }
  189 +
  190 + /**
  191 + * 显示横屏
  192 + */
  193 + public void showLandscapeScreen() {
  194 + me.showLandscapeScreen();
  195 + }
  196 +
  197 + /**
183 198 * 设置状态栏颜色
184 199 *
185 200 * @param color
... ...
core/base/src/main/java/com/cnlive/core/libs/base/util/CheckUtil.java
... ... @@ -17,12 +17,43 @@ import static android.content.Context.POWER_SERVICE;
17 17  
18 18 public class CheckUtil {
19 19 /**
20   - * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的
  20 + * 判断GPS是否开启
  21 + * ,GPS或者AGPS开启一个就认为是开启的
21 22 *
22 23 * @param context
23 24 * @return true 表示开启
24 25 */
25   - public static final boolean isOPenGps(final Context context) {
  26 + public static final boolean isOpenNormalGPS(final Context context) {
  27 + try {
  28 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
  29 + LocationManager locationManager
  30 + = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
  31 + // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)
  32 + boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  33 + // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)
  34 + boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
  35 + if (gps | network) {
  36 + return true;
  37 + } else {
  38 + return false;
  39 + }
  40 + } else {
  41 + return true;
  42 + }
  43 + } catch (Exception e) {
  44 + //异常就返回true
  45 + return true;
  46 + }
  47 + }
  48 +
  49 + /**
  50 + * 判断GPS是否开启高精度
  51 + * ,
  52 + *
  53 + * @param context
  54 + * @return true 表示开启
  55 + */
  56 + public static final boolean isOpenHighAccuracyGPS(final Context context) {
26 57 try {
27 58 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
28 59 LocationManager locationManager
... ... @@ -45,16 +76,38 @@ public class CheckUtil {
45 76 }
46 77 }
47 78  
48   - public static void openGPS(Activity context) {
  79 + /**
  80 + * 开启高精度GPS
  81 + *
  82 + * @param context
  83 + */
  84 + public static void openHighAccuracyGPS(Activity context) {
  85 + //开启GPS
  86 + try {
  87 + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  88 + context.startActivityForResult(intent, 10);
  89 + Toast.makeText(context, context.getString(R.string.open_high_gps_tip), Toast.LENGTH_LONG).show();
  90 + } catch (Exception e) {
  91 + Toast.makeText(context, "请手动打开GPS", Toast.LENGTH_LONG).show();
  92 + }
  93 + }
  94 +
  95 + /**
  96 + * 开启高精度GPS
  97 + *
  98 + * @param context
  99 + */
  100 + public static void openNormalGPS(Activity context) {
49 101 //开启GPS
50 102 try {
51 103 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
52 104 context.startActivityForResult(intent, 10);
53   - Toast.makeText(context, context.getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show();
  105 + Toast.makeText(context, context.getString(R.string.open_high_gps_tip), Toast.LENGTH_LONG).show();
54 106 } catch (Exception e) {
55 107 Toast.makeText(context, "请手动打开GPS", Toast.LENGTH_LONG).show();
56 108 }
57 109 }
  110 +
58 111 /**
59 112 * 锤子手机不能检测电池白名单,会崩溃
60 113 *
... ...
core/base/src/main/res/values/strings.xml
... ... @@ -19,8 +19,8 @@
19 19 <string name="fragmentation_stack_view">Stack</string>
20 20 <string name="fragmentation_stack_help">*: Not in backStack\n☀: Visible</string>
21 21 <!-- -->
22   - <string name="open_gps_tip">为确保功能正常使用,请开启GPS!</string>
23   -
  22 + <string name="open_high_gps_tip">为确保定位准确性,请开启GPS,将其设置为高精度模式!</string>
  23 + <string name="open_normal_gps_tip">为确保定位准确性,请开启GPS!</string>
24 24  
25 25 <string name="msg_empty_page">您现在还没有相关内容哦</string>
26 26 <string name="msg_failed_network_detail">别紧张,试试看刷新页面~</string>
... ...
module/pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollPedometerMainActivity.java
... ... @@ -3,10 +3,7 @@ package com.cnlive.moudle.collectionTrace.ui.activity;
3 3 import android.Manifest;
4 4 import android.app.Activity;
5 5 import android.content.Intent;
6   -import android.content.pm.PackageInfo;
7   -import android.content.pm.PackageManager;
8 6 import android.os.Build;
9   -import android.os.Bundle;
10 7 import android.provider.Settings;
11 8 import android.util.Log;
12 9 import android.widget.Toast;
... ... @@ -18,9 +15,7 @@ import com.cnlive.core.libs.base.frame.activity.BaseActivity;
18 15 import com.cnlive.core.libs.base.interfaces.OnPermissionResponseListener;
19 16 import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunMainFragment;
20 17 import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;
21   -import com.cnlive.moudle.pedometer.ui.fragment.RunMainFragment;
22 18 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
23   -import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsListener;
24 19 import com.cnlive.moudle.pedometer.utils.lib_permisshelper.PermissionsUtils;
25 20 import com.example.moudle_pedometer.R;
26 21  
... ... @@ -143,7 +138,7 @@ public class CollPedometerMainActivity extends BaseActivity {
143 138 //开启GPS
144 139 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
145 140 startActivityForResult(intent, 10);
146   - Toast.makeText(getApplicationContext(), getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show();
  141 + Toast.makeText(getApplicationContext(), getString(R.string.open_high_gps_tip), Toast.LENGTH_LONG).show();
147 142 } else {
148 143 if (null == getTopFragment()) {
149 144 if (null != runRaceDetailInfo) {
... ...
module/pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/StartCollectTraceActivity.java
... ... @@ -16,8 +16,6 @@ import com.cnlive.core.libs.base.util.StatusBarConfig;
16 16 import com.cnlive.moudle.collectionTrace.commonInfo.CollCommonInfo;
17 17 import com.cnlive.moudle.collectionTrace.ui.fragment.StartTraceFragment;
18 18 import com.cnlive.moudle.pedometer.net.bean.RunRaceDetailInfo;
19   -import com.cnlive.moudle.pedometer.ui.activity.RunRaceDetailActivity;
20   -import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment;
21 19 import com.cnlive.moudle.pedometer.utils.CheckUtil;
22 20 import com.cnlive.moudle.pedometer.utils.MyMapUtil;
23 21 import com.cnlive.moudle.pedometer.utils.NotificationUtil;
... ... @@ -96,7 +94,7 @@ public class StartCollectTraceActivity extends BaseActivity {
96 94 //开启GPS
97 95 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
98 96 startActivityForResult(intent, 10);
99   - Toast.makeText(getApplicationContext(), getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show();
  97 + Toast.makeText(getApplicationContext(), getString(R.string.open_high_gps_tip), Toast.LENGTH_LONG).show();
100 98 } else {
101 99 checkIgnore();
102 100 }
... ...
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunRaceDetailActivity.java
... ... @@ -5,7 +5,6 @@ import android.app.Activity;
5 5 import android.content.Intent;
6 6 import android.net.Uri;
7 7 import android.os.Build;
8   -import android.os.Bundle;
9 8 import android.provider.Settings;
10 9 import android.text.TextUtils;
11 10 import android.util.Log;
... ... @@ -138,7 +137,7 @@ public class RunRaceDetailActivity extends BaseActivity {
138 137 //开启GPS
139 138 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
140 139 startActivityForResult(intent, 10);
141   - Toast.makeText(getApplicationContext(), getString(R.string.open_gps_tip), Toast.LENGTH_LONG).show();
  140 + Toast.makeText(getApplicationContext(), getString(R.string.open_high_gps_tip), Toast.LENGTH_LONG).show();
142 141 } else {
143 142 checkIgnore();
144 143 }
... ...
module/pedometer/src/main/res/values/strings.xml
... ... @@ -68,7 +68,6 @@
68 68 <string name="loc_gps_accuracy_mid">GPS信号质量中等</string>
69 69 <string name="loc_gps_accuracy_good">GPS信号质量好</string>
70 70 <string name="layout_street_active_type">活动类型</string>
71   - <string name="open_gps_tip">为确保定位准确性,请开启GPS,将其设置为高精度模式!</string>
72 71 <!---->
73 72 <!--网络请求-->
74 73 <string name="retry">重试</string>
... ...
module/xiaojiasoundbox/build.gradle
  1 +// com.android.library 标识这是一个库模块,是依附别的应用程序运行
1 2 apply plugin: 'com.android.library'
2 3  
3 4 android {
... ...
module/xiaojiasoundbox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/BlueToothStep2Activity.java
... ... @@ -79,9 +79,9 @@ public class BlueToothStep2Activity extends BaseActivity {
79 79 @Override
80 80 public void onClick(View view) {
81 81 //判断GPS是否打开
82   - boolean isOpenGPS = CheckUtil.isOPenGps(BlueToothStep2Activity.this);
  82 + boolean isOpenGPS = CheckUtil.isOpenHighAccuracyGPS(BlueToothStep2Activity.this);
83 83 if (!isOpenGPS) {
84   - CheckUtil.openGPS(BlueToothStep2Activity.this);
  84 + CheckUtil.openHighAccuracyGPS(BlueToothStep2Activity.this);
85 85 } else {
86 86 //判断蓝牙是否打开
87 87 getPermissionsWithTip();
... ...
module/xiaojiasoundbox/src/main/res/values/strings.xml
... ... @@ -22,7 +22,6 @@
22 22 <string name="xiaojia_listen_to_music_tip">“小家、小家,放首歌听听”</string>
23 23 <string name="also_to_listen_china">也可以去“听见中国”听听有趣的故事</string>
24 24 <string name="go_to_liaten_china">前往听见中国 >></string>
25   - <string name="open_gps_tip">为确保功能正常使用,请开启GPS!</string>
26 25 <string name="retry">重试</string>
27 26 <string name="invite_you">邀请你</string>
28 27 <string name="scanto_get_invite">扫码和他(她)绑定亲情关系</string>
... ...