Commit b7d1c017665feed291b778056f0988ad89ab15af

Authored by 杨帅
1 parent 99f1762f

1 修改白名单及通知权限检查逻辑

config.gradle
@@ -21,7 +21,7 @@ ext { @@ -21,7 +21,7 @@ ext {
21 //编译方式 21 //编译方式
22 debug : false, 22 debug : false,
23 //版本号 23 //版本号
24 - version: "0.7.6", 24 + version: "0.7.7",
25 //Lib库前缀 25 //Lib库前缀
26 packeg : "com.cnlive.module", 26 packeg : "com.cnlive.module",
27 //Lib库名称 27 //Lib库名称
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollRunRaceDetailActivity.java
@@ -71,7 +71,7 @@ public class CollRunRaceDetailActivity extends QMUIFragmentActivity { @@ -71,7 +71,7 @@ public class CollRunRaceDetailActivity extends QMUIFragmentActivity {
71 super.onResume(); 71 super.onResume();
72 boolean isSet = CheckUtil.isIgnoringBatteryOptimizationss(this); 72 boolean isSet = CheckUtil.isIgnoringBatteryOptimizationss(this);
73 if (!isSet) { 73 if (!isSet) {
74 - isSet = CheckUtil.isIgnoringBatteryOptimizationss(this); 74 + CheckUtil.toSetIgnore(this);
75 } 75 }
76 76
77 } 77 }
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/StartCollectTraceActivity.java
@@ -75,11 +75,13 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { @@ -75,11 +75,13 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity {
75 } else { 75 } else {
76 boolean isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(StartCollectTraceActivity.this); 76 boolean isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(StartCollectTraceActivity.this);
77 if (!isSetBattery) { 77 if (!isSetBattery) {
78 - isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(StartCollectTraceActivity.this); 78 + CheckUtil.toSetIgnore(this);
79 } else { 79 } else {
80 getPermissionsWithTip(); 80 getPermissionsWithTip();
81 } 81 }
82 } 82 }
  83 + } else {
  84 + NotificationUtil.goToSettingNo(this);
83 } 85 }
84 } 86 }
85 87
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunRaceDetailActivity.java
@@ -142,11 +142,13 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { @@ -142,11 +142,13 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity {
142 } else { 142 } else {
143 boolean isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(RunRaceDetailActivity.this); 143 boolean isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(RunRaceDetailActivity.this);
144 if (!isSetBattery) { 144 if (!isSetBattery) {
145 - isSetBattery = CheckUtil.isIgnoringBatteryOptimizationss(RunRaceDetailActivity.this); 145 + CheckUtil.toSetIgnore(this);
146 } else { 146 } else {
147 getPermissionsWithTip(); 147 getPermissionsWithTip();
148 } 148 }
149 } 149 }
  150 + }else {
  151 + NotificationUtil.goToSettingNo(this);
150 } 152 }
151 153
152 } 154 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/CheckUtil.java
@@ -7,6 +7,7 @@ import android.content.pm.PackageManager; @@ -7,6 +7,7 @@ import android.content.pm.PackageManager;
7 import android.net.Uri; 7 import android.net.Uri;
8 import android.os.PowerManager; 8 import android.os.PowerManager;
9 import android.provider.Settings; 9 import android.provider.Settings;
  10 +import android.widget.Toast;
10 11
11 import com.cnlive.libs.base.util.AlertUtil; 12 import com.cnlive.libs.base.util.AlertUtil;
12 13
@@ -21,27 +22,34 @@ public class CheckUtil { @@ -21,27 +22,34 @@ public class CheckUtil {
21 * @return 22 * @return
22 */ 23 */
23 public static boolean isIgnoringBatteryOptimizationss(Activity context) { 24 public static boolean isIgnoringBatteryOptimizationss(Activity context) {
24 - String carrier = android.os.Build.MANUFACTURER;  
25 - if (!"smartisan".equals(carrier)) {  
26 - PowerManager powerManager = (PowerManager) context.getSystemService(POWER_SERVICE);  
27 - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {  
28 - boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(context.getPackageName());  
29 - if (!hasIgnored) {  
30 - Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);  
31 - intent.setData(Uri.parse("package:" + context.getPackageName()));  
32 - PackageManager pm = context.getPackageManager();  
33 - if (intent.resolveActivity(pm) != null) {  
34 - context.startActivity(intent);  
35 - }  
36 - AlertUtil.showDeftToast(context, "请选择允许加入电池优化白名单,否则将会影响您的正常使用!");  
37 - return false;  
38 - } else {  
39 - return true; 25 + try {
  26 + String carrier = android.os.Build.MANUFACTURER;
  27 + if (!"smartisan".equals(carrier)) {
  28 + PowerManager powerManager = (PowerManager) context.getSystemService(POWER_SERVICE);
  29 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
  30 + boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(context.getPackageName());
  31 + return hasIgnored;
40 } 32 }
  33 + } else {
  34 + return true;
41 } 35 }
42 - } else { 36 + return false;
  37 + } catch (Exception e) {
43 return true; 38 return true;
44 } 39 }
45 - return false; 40 + }
  41 +
  42 + public static void toSetIgnore(Activity context) {
  43 + try {
  44 + Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
  45 + intent.setData(Uri.parse("package:" + context.getPackageName()));
  46 + PackageManager pm = context.getPackageManager();
  47 + if (intent.resolveActivity(pm) != null) {
  48 + context.startActivity(intent);
  49 + AlertUtil.showDeftToast(context, "请选择允许加入电池优化白名单,否则将会影响您的正常使用!");
  50 +
  51 + }
  52 + } catch (Exception e) {
  53 + }
46 } 54 }
47 } 55 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/NotificationUtil.java
@@ -20,13 +20,10 @@ public class NotificationUtil { @@ -20,13 +20,10 @@ public class NotificationUtil {
20 //监测通知权限是否打开 20 //监测通知权限是否打开
21 notificationManagerCompat = NotificationManagerCompat.from(activity); 21 notificationManagerCompat = NotificationManagerCompat.from(activity);
22 isOpen = notificationManagerCompat.areNotificationsEnabled(); 22 isOpen = notificationManagerCompat.areNotificationsEnabled();
23 - if (!isOpen) {  
24 - goToSettingNo(activity);  
25 - }  
26 return isOpen; 23 return isOpen;
27 } 24 }
28 25
29 - private static void goToSettingNo(Activity activity) { 26 + public static void goToSettingNo(Activity activity) {
30 Toast.makeText(activity, "您尚未开启通知权限,无法进行计步", Toast.LENGTH_LONG).show(); 27 Toast.makeText(activity, "您尚未开启通知权限,无法进行计步", Toast.LENGTH_LONG).show();
31 Intent intent1 = new Intent(); 28 Intent intent1 = new Intent();
32 try { 29 try {