Procházet zdrojové kódy

补充序列号获取;补充低版本通用权限校验

Frankensteinly před 11 měsíci
rodič
revize
1be6b69c73

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -9,6 +9,8 @@
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+
     <application
         android:name=".MyApplication"
         android:allowBackup="true"

+ 28 - 0
app/src/main/java/com/grkj/iscs/extentions/Context.kt

@@ -1,8 +1,15 @@
 package com.grkj.iscs.extentions
 
+import android.Manifest
+import android.annotation.SuppressLint
 import android.content.Context
+import android.content.pm.PackageManager
+import android.os.Build
+import androidx.core.app.ActivityCompat
+import androidx.core.content.ContextCompat
 import androidx.lifecycle.Observer
 import com.grkj.iscs.util.NetManager
+import java.util.Locale
 
 /**
  * 网络管理器
@@ -15,4 +22,25 @@ fun Context.addNetObserver(observer: Observer<Boolean>) {
 
 fun Context.removeNetObserver(observer: Observer<Boolean>) {
     netManager().liveData.removeObserver(observer)
+}
+
+fun Context.serialNo() : String {
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+        && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
+        == PackageManager.PERMISSION_GRANTED) {
+        return Build.getSerial().toUpperCase(Locale.ROOT)
+    }
+    return Build.SERIAL.toUpperCase(Locale.ROOT)
+}
+
+/**
+ * 检查权限
+ */
+fun Context.checkPermissions(permissions: Array<String>): Boolean {
+    for (permission in permissions) {
+        if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
+            return false
+        }
+    }
+    return true
 }

+ 10 - 6
app/src/main/java/com/grkj/iscs/util/CommonUtils.kt

@@ -18,6 +18,15 @@ object CommonUtils {
         return (dpValue * density + 0.5f).toInt()
     }
 
+    fun checkPermission(activity: AppCompatActivity, permissions: Array<String>, callBack: () -> Unit) {
+        val isPermission = EasyPermissions.hasPermissions(activity, *permissions)
+        if (isPermission) {
+            callBack.invoke()
+        } else {
+            EasyPermissions.requestPermissions(activity, "", PERMISSION_REQUEST_CODE, *permissions)
+        }
+    }
+
     fun checkBlePermission(activity: AppCompatActivity, callBack: () -> Unit) {
         val permissions: Array<String> = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
             arrayOf(
@@ -30,12 +39,7 @@ object CommonUtils {
         } else {
             arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION)
         }
-        val isPermission = EasyPermissions.hasPermissions(activity, *permissions)
-        if (isPermission) {
-            callBack.invoke()
-        } else {
-            EasyPermissions.requestPermissions(activity, "", PERMISSION_REQUEST_CODE, *permissions)
-        }
+        checkPermission(activity, permissions, callBack)
     }
 
     fun getStr(textId: Int, ctx: Context? = null): String? {