|
|
@@ -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();
|
|
|
}
|
|
|
}
|
|
|
|