huangxi 3 anni fa
parent
commit
2d09b1f451

+ 110 - 5
app/src/main/java/com/sheep/gamegroup/module/qrcode/FaceWithQRActivity.java

@@ -1,20 +1,24 @@
 package com.sheep.gamegroup.module.qrcode;
 
-import android.Manifest;
+import android.app.Activity;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
+import android.util.Log;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baidu.idl.face.platform.FaceSDKManager;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.Constant;
-import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.upfile.UpFileListener;
 import com.sheep.gamegroup.util.upfile.UpFileUtils;
@@ -22,7 +26,6 @@ import com.snail.antifake.jni.EmulatorDetectUtil;
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.List;
 
 import cn.finalteam.rxgalleryfinal.utils.CameraUtil;
 
@@ -40,6 +43,9 @@ public class FaceWithQRActivity extends BaseActivity {
 
     private boolean useQR = false;
 
+    private AlertDialog permissionDialog;
+
+
     @Override
     protected int getLayoutId() {
         return 0;
@@ -64,8 +70,107 @@ public class FaceWithQRActivity extends BaseActivity {
 
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if (CameraUtil.checkCameraPermission(this)) {
-            dispatch();
+//        if (CameraUtil.checkCameraPermission(this)) {
+//            dispatch();
+//        }
+        if (requestCode == 1001) {
+
+            boolean isAllGranted = true;
+
+            for (int grant : grantResults) {
+
+                if (grant != PackageManager.PERMISSION_GRANTED) {
+
+                    isAllGranted = false;
+
+                    break;
+
+                }
+
+            }
+
+            if (isAllGranted) {
+
+                Log.e("TAG", "onRequestPermissionsResult 同意");
+                dispatch();
+
+            } else {
+
+                ArrayList<String> notAsk = new ArrayList<>();
+
+                for (String permission : permissions) {
+
+                    Log.e("TAG", "onRequestPermissionsResult - 循环 -");
+
+                    if (!ActivityCompat.shouldShowRequestPermissionRationale(this, permission)
+
+                            && ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
+
+                        notAsk.add(permission);
+
+                    }
+
+                }
+
+                if (notAsk.size() > 0) {//拒绝不再提醒
+
+                    Log.e("TAG", "onRequestPermissionsResult 拒绝不再提醒");
+                    try{
+                        permissionDialog = new  AlertDialog.Builder(this)
+                                .setMessage("需要同意相机权限,完成人脸识别后才能支付")
+                                .setCancelable(false)
+                                .setNegativeButton("拒绝", new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        dialog.dismiss();
+                                        finish();
+                                    }
+                                })
+                                .setPositiveButton("同意", new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
+                                            dialog.dismiss();
+                                            goIntentSetting(FaceWithQRActivity.this);
+                                            finish();
+                                        }
+                                    }
+                                })
+                                .show();
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                } else {
+
+                    Log.e("TAG", "onRequestPermissionsResult 本次拒绝");
+                    CameraUtil.checkCameraPermission(this);
+
+                }
+
+            }
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        if (permissionDialog != null && permissionDialog.isShowing()) {
+            permissionDialog.dismiss();
+            finish();
+        }
+    }
+
+    /**
+     * 默认打开应用详细页
+     */
+    private static void goIntentSetting(Activity pActivity) {
+        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+        Uri uri = Uri.fromParts("package", pActivity.getPackageName(), null);
+        intent.setData(uri);
+        try {
+            pActivity.startActivity(intent);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 

+ 2 - 2
gradle.properties

@@ -17,8 +17,8 @@
 # org.gradle.parallel=true
 #android.injected.build.model.only.versioned = 3
 
-VERSION_NAME=3.8.8
-VERSION_CODE=3008008
+VERSION_NAME=3.8.9
+VERSION_CODE=3008009
 ANDROID_COMPILE_SDK_VERSION=30
 ANDROID_MIN_SDK_VERSION=19
 ANDORID_TARGET_SDK_VERSION=28