浏览代码

[New]更新

zhipeng 2 年之前
父节点
当前提交
447dea9452

+ 1 - 0
common/src/main/AndroidManifest.xml

@@ -7,4 +7,5 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
         tools:ignore="ProtectedPermissions" />
+    <uses-permission android:name="com.google.android.gms.permission.AD_ID" />
 </manifest>

+ 4 - 0
common/src/main/java/com/atmob/common/data/KVClient.java

@@ -16,4 +16,8 @@ interface KVClient {
     void putLong(String key, long value);
 
     long getLong(String key, long defaultValue);
+
+    void putFloat(String key, float value);
+
+    float getFloat(String key, float defaultValue);
 }

+ 42 - 0
common/src/main/java/com/atmob/common/data/KVUtils.java

@@ -76,6 +76,16 @@ public class KVUtils implements KVClient {
         return getClient().getLong(key, defaultValue);
     }
 
+    @Override
+    public void putFloat(String key, float value) {
+        getClient().putFloat(key, value);
+    }
+
+    @Override
+    public float getFloat(String key, float defaultValue) {
+        return getClient().getFloat(key, defaultValue);
+    }
+
     private static class MMKVClient implements KVClient {
 
         private static Class<?> mmkvClass;
@@ -222,6 +232,28 @@ public class KVUtils implements KVClient {
                 return SPKVClient.getInstance().getLong(key, defaultValue);
             }
         }
+
+        @Override
+        public void putFloat(String key, float value) {
+            try {
+                Method putFloat = mmkvClass.getMethod("putFloat", String.class, float.class);
+                putFloat.invoke(getDefault(), key, value);
+            } catch (Exception e) {
+                e.printStackTrace();
+                SPKVClient.getInstance().putFloat(key, value);
+            }
+        }
+
+        @Override
+        public float getFloat(String key, float defaultValue) {
+            try {
+                Method getFloat = mmkvClass.getMethod("getFloat", String.class, float.class);
+                return (float) getFloat.invoke(getDefault(), key, defaultValue);
+            } catch (Exception e) {
+                e.printStackTrace();
+                return SPKVClient.getInstance().getFloat(key, defaultValue);
+            }
+        }
     }
 
     private static class SPKVClient implements KVClient {
@@ -293,5 +325,15 @@ public class KVUtils implements KVClient {
         public long getLong(String key, long defaultValue) {
             return getDefault().getLong(key, defaultValue);
         }
+
+        @Override
+        public void putFloat(String key, float value) {
+            getDefault().edit().putFloat(key, value).apply();
+        }
+
+        @Override
+        public float getFloat(String key, float defaultValue) {
+            return getDefault().getFloat(key, defaultValue);
+        }
     }
 }

+ 12 - 2
common/src/main/java/com/atmob/common/device/DeviceInfoUtil.java

@@ -13,7 +13,11 @@ import android.text.TextUtils;
 import com.atmob.common.data.KVUtils;
 import com.atmob.common.permission.PermissionUtil;
 import com.atmob.common.thread.ThreadPoolUtil;
+import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
+import com.google.android.gms.common.GooglePlayServicesRepairableException;
 
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 
@@ -171,8 +175,11 @@ public class DeviceInfoUtil {
             Class<?> oaidHelperClass = Class.forName("com.atmob.oaid.OaidHelper");
             Method getOaid = oaidHelperClass.getMethod("getOaid", Context.class);
             oaid = (String) getOaid.invoke(null, context);
-        } catch (Exception e) {
+        } catch (ClassNotFoundException | InvocationTargetException | NoSuchMethodException |
+                 IllegalAccessException e) {
             oaidEnable = false;
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return oaid;
     }
@@ -190,8 +197,11 @@ public class DeviceInfoUtil {
                 Class<?> infoClass = Class.forName("com.google.android.gms.ads.identifier.AdvertisingIdClient$Info");
                 Method getId = infoClass.getMethod("getId");
                 DeviceInfoUtil.aaid = (String) getId.invoke(info);
-            } catch (Exception ignore) {
+            } catch (ClassNotFoundException | InvocationTargetException | NoSuchMethodException |
+                     IllegalAccessException e) {
                 aaidEnable = false;
+            } catch (Exception e) {
+                e.printStackTrace();
             }
         });
         return aaid;

+ 3 - 15
common/src/main/java/com/atmob/common/runtime/ProcessUtil.java

@@ -46,22 +46,10 @@ public class ProcessUtil {
     }
 
     public static boolean isMainProcess(Context context) {
-//        Context context = ContextUtil.getContext();
-
-
-        String processName = getProcessName(Process.myPid());
         String packageName = context.getPackageName();
-
-        boolean isMainProcess = processName == null || processName.equals(packageName);
-
-        if (!isMainProcess && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
-            Application application = (Application) context.getApplicationContext();
-            processName = application.getPackageName();
-            isMainProcess = processName == null || processName.equals(packageName);
-        }
-
-
-        return isMainProcess;
+        int pid = Process.myPid();
+        String processName = getProcessName(pid);
+        return processName == null || processName.equals(packageName);
     }
 
     public static boolean isMainThread() {

+ 1 - 1
user/src/main/AndroidManifest.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.atmob.user">
-
+    <uses-permission android:name="com.google.android.gms.permission.AD_ID" />
 </manifest>