Browse Source

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

Bitliker 8 years ago
parent
commit
fa6d066bb0

+ 34 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/LoginActivity.java

@@ -1,9 +1,12 @@
 package com.xzjmyk.pm.activity.ui.account;
 
+import android.Manifest;
 import android.app.ProgressDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
@@ -26,6 +29,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.me.TimeStatisticsActivity;
 import com.xzjmyk.pm.activity.util.DeviceInfoUtil;
 import com.xzjmyk.pm.activity.util.Md5Util;
+import com.xzjmyk.pm.activity.util.PermissionUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
@@ -38,6 +42,7 @@ import java.util.HashMap;
 
 import de.hdodenhof.circleimageview.CircleImageView;
 
+
 /**
  * 登陆界面
  *
@@ -53,6 +58,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
 
     private TextView tv_register;
     private TextView tv_findPwd;
+    private String[] permissions = {Manifest.permission.READ_PHONE_STATE};
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -73,25 +79,41 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
     @Override
     protected void onResume() {
         super.onResume();
+        if (PermissionUtil.lacksPermissions(this, permissions)) {
+            PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
+        }
         if (!MyApplication.getInstance().getBdLocationHelper().isLocationUpdate()) {
             MyApplication.getInstance().getBdLocationHelper().requestLocation();
         }
     }
 
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
+            if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
+                //TODO 没有获取到权限
+                LogUtil.i("没有获取到权限");
+            } else {
+                LogUtil.i("已经用户赋予权限获取到权限");
+            }
+        }
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+    }
+
     private void initView() {
         mPhoneNumberEdit = (EditText) findViewById(R.id.phone_numer_edit);
         mPasswordEdit = (EditText) findViewById(R.id.password_edit);
         mHeader = (CircleImageView) findViewById(R.id.iv_head);
-        tv_findPwd= (TextView) findViewById(R.id.tv_findPwd);
-        tv_register= (TextView) findViewById(R.id.tv_register);
-        if (CommonUtil.getSharedPreferences(this,"user_phone") != null &&CommonUtil.getSharedPreferences(this, "user_phone").length() > 0) {
+        tv_findPwd = (TextView) findViewById(R.id.tv_findPwd);
+        tv_register = (TextView) findViewById(R.id.tv_register);
+        if (CommonUtil.getSharedPreferences(this, "user_phone") != null && CommonUtil.getSharedPreferences(this, "user_phone").length() > 0) {
             mPhoneNumberEdit.setText(CommonUtil.getSharedPreferences(this, "user_phone"));
-      
-        
+
+
         }
         if (PreferenceUtils.getString(this, PASS_WORDS) != null && PreferenceUtils.getString(this, PASS_WORDS).length() > 0) {
             mPasswordEdit.setText(PreferenceUtils.getString(this, PASS_WORDS));
-           
+
         }
         //登陆账号
         findViewById(R.id.login_btn).setOnClickListener(this);
@@ -109,13 +131,13 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
                 login();
                 break;
             case R.id.tv_register:
-                ViewUtil.webLinks(mContext, 
-                        "https://account.ubtob.com/sso/register", 
+                ViewUtil.webLinks(mContext,
+                        "https://account.ubtob.com/sso/register",
                         getString(R.string.login_register));
                 break;
             case R.id.tv_findPwd:
-                ViewUtil.webLinks(mContext, 
-                        "https://account.ubtob.com/user/pwd?appId=home&returnURL=http%3A%2F%2Fwww.ubtob.com%2F", 
+                ViewUtil.webLinks(mContext,
+                        "https://account.ubtob.com/user/pwd?appId=home&returnURL=http%3A%2F%2Fwww.ubtob.com%2F",
                         getString(R.string.login_getpwd));
                 break;
         }
@@ -222,8 +244,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
         if (TextUtils.isEmpty(password)) {
             return;
         }
-        if (mContext==null){
-            mContext=this;
+        if (mContext == null) {
+            mContext = this;
             return;
         }
         ViewUtil.LoginTask(phone, password, mContext);

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessStateActivity.java

@@ -319,8 +319,6 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
 
         @Override
         public View getView(final int position, View convertView, ViewGroup parent) {
-            if (CommonUtil.isReleaseVersion())
-                return getOldView(position, convertView, parent);
             return getNewView(position, convertView, parent);
         }
 

+ 18 - 82
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/PermissionUtil.java

@@ -2,14 +2,10 @@ package com.xzjmyk.pm.activity.util;
 
 import android.app.Activity;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.pm.PackageManager;
 import android.os.Build;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AlertDialog;
-
-import java.lang.reflect.Method;
 
 /**
  * android6.0以上权限控制
@@ -20,94 +16,34 @@ import java.lang.reflect.Method;
  * 4.进行权限之后动作
  */
 public class PermissionUtil {
-    private Activity activity;
-    public  static final int DEFAULT_REQUEST=0x31;
-    public PermissionUtil(Activity activity) {
-        this.activity = activity;
-    }
+    public static final int DEFAULT_REQUEST = 0x31;
 
-    /**
-     * 判断是否拥有指定权限
-     *
-     * @param permissions 要检查的权限
-     * @return 若有一个权限没有,就返回false,全部权限都拥有,返回true
-     */
-    public boolean hasPermissionGranted(String[] permissions) {
-        for (String permission : permissions) {
-            if (ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_DENIED) {
-                return false;
-            }
-        }
-        return true;
-    }
 
-    /**
-     * 判断是否向用户显示权限请求的依据(向用户解释为什么要申请该权限)
-     *
-     * @param permissions 要申请的权限
-     * @return 若有一个权限应该显示依据,返回true,若全部权限都不应该显示依据,返回false
-     */
-    private boolean shouldShowRequestPermissionRationale(String[] permissions) {
-        for (String permission : permissions) {
-            if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permission)) {
-                return true;
+    // 判断权限集合
+    public static boolean lacksPermissions(Context context, String... permissions) {
+        if (Build.VERSION.SDK_INT >= 23) {
+            for (String permission : permissions) {
+                if (lacksPermission(context,permission)) {
+                    return true;
+                }
             }
+        } else {
+            PackageManager pm = context.getPackageManager();
+            for (String permission : permissions)
+                if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED)
+                    return true;
         }
         return false;
     }
 
-    /**
-     * 请求所需所有的权限
-     *
-     * @param permissions 要请求的权限  对应onRequestPermissionsResult中的第二个参数permissions
-     * @param requestCode 权限请求码  对应onRequestPermissionsResult中的第一个参数requestCode
-     */
-    public void requestRequiredPermissions(final String[] permissions,  final int requestCode) {
-        if (shouldShowRequestPermissionRationale(permissions)) {
-            new AlertDialog.Builder(activity)
-                    .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog, int which) {
-                            ActivityCompat.requestPermissions(activity, permissions, requestCode);
-                        }
-                    })
-                    .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog, int which) {
-                            activity.finish();
-                        }
-                    })
-                    .show();
-        } else {
-            ActivityCompat.requestPermissions(activity, permissions, requestCode);
-        }
+    // 判断是否缺少权限
+    private static boolean lacksPermission(Context context,String permission) {
+        return ContextCompat.checkSelfPermission(context, permission) ==
+                PackageManager.PERMISSION_DENIED;
     }
 
 
-    public static boolean checkPermission(Context context, String permission) {
-        boolean result = false;
-        if (Build.VERSION.SDK_INT >= 23) {
-            try {
-                Class<?> clazz = Class.forName("android.content.Context");
-                Method method = clazz.getMethod("checkSelfPermission", String.class);
-                int rest = (Integer) method.invoke(context, permission);
-                if (rest == PackageManager.PERMISSION_GRANTED) {
-                    result = true;
-                } else {
-                    result = false;
-                }
-            } catch (Exception e) {
-                result = false;
-            }
-        } else {
-            PackageManager pm = context.getPackageManager();
-            if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED) {
-                result = true;
-            }
-        }
-        return result;
-    }
-    public  static void requestPermission(Activity ct,int requestCode, String... permissions ) {
+    public static void requestPermission(Activity ct, int requestCode, String... permissions) {
         ActivityCompat.requestPermissions(ct, permissions, requestCode);
     }
 }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/video/VideoActivity.java

@@ -95,7 +95,7 @@ public class VideoActivity extends AppCompatActivity implements MediaRecorder.On
     }
 
     private boolean validatePermission() {
-        if (!PermissionUtil.checkPermission(this, Manifest.permission.CAMERA)) {
+        if (!PermissionUtil.lacksPermissions(this, Manifest.permission.CAMERA)) {
             PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, Manifest.permission.CAMERA);
         }
         return true;