Browse Source

1.处理关于商机列表展示时候因为新老界面的差别问题,产生的类类型不匹配所引起的闪退现象问题
2.处理6.0版本手机无法获取设备id并且不能正常登陆问题

Bitliker 8 years ago
parent
commit
c8d2458452

+ 73 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/stream/PermissionHelper.java

@@ -0,0 +1,73 @@
+package com.xzjmyk.pm.activity.util.stream;
+
+import android.app.Activity;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.util.PermissionUtil;
+
+import static com.umeng.socialize.utils.DeviceConfig.context;
+
+/**
+ * Created by Bitliker on 2017/6/5.
+ */
+
+public class PermissionHelper {
+    private Activity activity;
+    public static final int DEFAULT_REQUEST = 0x31;
+
+    public PermissionHelper(Activity activity) {
+        this.activity = activity;
+    }
+
+    public void judgeAndrequestPermission(String[] permissions) {
+        if (lacksPermissions(permissions)) {
+            requestPermission(permissions);
+        }
+    }
+
+
+    public boolean isRequestPermissionsOk(int requestCode, String[] permissions, int[] grantResults) {
+        if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
+            if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
+                //TODO 没有获取到权限
+                LogUtil.i("没有获取到权限");
+                return false;
+            } else {
+                LogUtil.i("已经用户赋予权限获取到权限");
+                return true;
+            }
+        }
+        return false;
+    }
+
+    void requestPermission(String... permissions) {
+        ActivityCompat.requestPermissions(this.activity, permissions, DEFAULT_REQUEST);
+    }
+
+    // 是否有没有获取到的权限
+    private boolean lacksPermissions(String... permissions) {
+        if (Build.VERSION.SDK_INT >= 23) {
+            for (String permission : permissions) {
+                if (lacksPermission(permission)) {
+                    return true;
+                }
+            }
+        } else {
+            PackageManager pm = activity.getPackageManager();
+            for (String permission : permissions)
+                if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED)
+                    return true;
+        }
+        return false;
+    }
+
+    // 判断是否缺少权限
+    private boolean lacksPermission(String permission) {
+        return ContextCompat.checkSelfPermission(activity, permission) ==
+                PackageManager.PERMISSION_DENIED;
+    }
+}