权限处理

This commit is contained in:
jia 2024-12-08 02:56:28 +08:00
parent 9ebe9443c7
commit 23e11c8f91
3 changed files with 84 additions and 6 deletions

View File

@ -43,6 +43,6 @@ allprojects {
ext {
compileSdkVersion = 33
buildToolsVersion = "33.0.0"
minSdkVersion = 21
minSdkVersion = 23
targetSdkVersion = 33
}

View File

@ -94,7 +94,7 @@ dependencies {
implementation 'de.greenrobot:eventbus:2.4.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation 'com.squareup.okhttp3:okhttp:3.9.0' //3.9.0
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.google.zxing:core:3.3.0'
//
@ -173,7 +173,7 @@ dependencies {
//
// implementation files('libs/umeng_social_sdk.jar')
implementation 'com.tencent:mmkv:1.3.3'
implementation 'com.tencent:mmkv:2.0.0'
implementation("com.github.bumptech.glide:okhttp3-integration:4.11.0" )
implementation 'com.github.Jasonchenlijian:FastBle:2.4.0'

View File

@ -9,6 +9,7 @@ package com.ifish.fragment;
import static android.content.Context.NOTIFICATION_SERVICE;
import android.Manifest;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
@ -34,6 +35,7 @@ import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.clj.fastble.BleManager;
import com.ifish.activity.AboutActivity;
import com.ifish.activity.BindTwoDeviceActivity;
import com.ifish.activity.CaptureActivity;
import com.ifish.activity.DeviceInstructionActivity;
import com.ifish.activity.LoadingActivity;
@ -55,6 +57,7 @@ import com.ifish.basebean.MineNewInfo;
import com.ifish.basebean.Version;
import com.ifish.baseclass.BaseV4Fragment;
import com.ifish.baseclass.UriForFile;
import com.ifish.permission.PermissionHelper;
import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil;
@ -113,6 +116,9 @@ public class MineFragment extends BaseV4Fragment {
initView();
loadHeadImage();
initListener();
permission = new String[]{Manifest.permission.CAMERA};
permissionHelper = new PermissionHelper(this, permission, 250);
return v;
}
@ -354,6 +360,21 @@ public class MineFragment extends BaseV4Fragment {
// CallbackContext.onActivityResult(requestCode, resultCode, data);
}
private void showPermissionHint(){
AlertDialog.Builder dialog = new AlertDialog.Builder(requireContext(), AlertDialog.THEME_HOLO_LIGHT);
dialog.setCancelable(false);
dialog.setTitle("提示");
dialog.setMessage("扫一扫,需要获取相机权限,才能使用扫描功能,是否允许申请?");
dialog.setNegativeButton("拒绝", (arg0, arg1) -> {
arg0.dismiss();
});
dialog.setPositiveButton("允许", (dialog1, which) -> {
getPermission();
});
dialog.show();
}
@Override
public void onClick(View v) {//点击事件
Intent i = new Intent();
@ -365,9 +386,14 @@ public class MineFragment extends BaseV4Fragment {
AnimationUtil.startAnimation(getActivity());
break;
case R.id.rl_zxing://扫描二维码
i.setClass(getActivity(), CaptureActivity.class);
startActivity(i);
AnimationUtil.startAnimation(getActivity());
if (!permissionHelper.checkSelfPermission(permission)) {
showPermissionHint();
}else {
i.setClass(getActivity(), CaptureActivity.class);
startActivity(i);
AnimationUtil.startAnimation(getActivity());
}
break;
case R.id.rl_aboutus:
i.setClass(getActivity(), AboutActivity.class);
@ -624,4 +650,56 @@ public class MineFragment extends BaseV4Fragment {
}
}
}
private PermissionHelper permissionHelper;
String[] permission;
private void getPermission() {
permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override
public void onPermissionGranted() {
Intent i = new Intent();
i.setClass(requireActivity(), CaptureActivity.class);
startActivity(i);
AnimationUtil.startAnimation(requireActivity());
}
@Override
public void onIndividualPermissionGranted(String[] grantedPermission) {
AlertDialog.Builder dialog = new AlertDialog.Builder(requireActivity());
dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", (dialog2, which) -> {
});
dialog.setNegativeButton("取消", (dialog3, which) -> {
});
dialog.show();
}
@Override
public void onPermissionDenied() {
AlertDialog.Builder dialog = new AlertDialog.Builder(requireActivity());
dialog.setCancelable(false);
dialog.setMessage("请先同意app获取权限");
dialog.setPositiveButton("确定", (dialog4, which) -> getPermission());
dialog.setNegativeButton("取消", (dialog5, which) -> {
});
dialog.show();
}
@Override
public void onPermissionDeniedBySystem() {
AlertDialog.Builder dialog = new AlertDialog.Builder(requireActivity());
dialog.setCancelable(false);
dialog.setTitle("温馨提示");
dialog.setMessage("请到应用信息页面-权限管理-打开图片和相机权限");
dialog.setPositiveButton("去开启", (dialog1, which) -> {
AppUtil.toAuthority(requireActivity());
});
dialog.setNegativeButton("取消", (dialog12, which) -> {
});
dialog.show();
}
});
}
}