权限处理

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 { ext {
compileSdkVersion = 33 compileSdkVersion = 33
buildToolsVersion = "33.0.0" buildToolsVersion = "33.0.0"
minSdkVersion = 21 minSdkVersion = 23
targetSdkVersion = 33 targetSdkVersion = 33
} }

View File

@ -94,7 +94,7 @@ dependencies {
implementation 'de.greenrobot:eventbus:2.4.0' implementation 'de.greenrobot:eventbus:2.4.0'
implementation 'com.squareup.picasso:picasso:2.5.2' 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.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.google.zxing:core:3.3.0' implementation 'com.google.zxing:core:3.3.0'
// //
@ -173,7 +173,7 @@ dependencies {
// //
// implementation files('libs/umeng_social_sdk.jar') // 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.bumptech.glide:okhttp3-integration:4.11.0" )
implementation 'com.github.Jasonchenlijian:FastBle:2.4.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 static android.content.Context.NOTIFICATION_SERVICE;
import android.Manifest;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.Dialog; import android.app.Dialog;
@ -34,6 +35,7 @@ import android.widget.Toast;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.clj.fastble.BleManager; import com.clj.fastble.BleManager;
import com.ifish.activity.AboutActivity; import com.ifish.activity.AboutActivity;
import com.ifish.activity.BindTwoDeviceActivity;
import com.ifish.activity.CaptureActivity; import com.ifish.activity.CaptureActivity;
import com.ifish.activity.DeviceInstructionActivity; import com.ifish.activity.DeviceInstructionActivity;
import com.ifish.activity.LoadingActivity; import com.ifish.activity.LoadingActivity;
@ -55,6 +57,7 @@ import com.ifish.basebean.MineNewInfo;
import com.ifish.basebean.Version; import com.ifish.basebean.Version;
import com.ifish.baseclass.BaseV4Fragment; import com.ifish.baseclass.BaseV4Fragment;
import com.ifish.baseclass.UriForFile; import com.ifish.baseclass.UriForFile;
import com.ifish.permission.PermissionHelper;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil; import com.ifish.utils.AppUtil;
@ -113,6 +116,9 @@ public class MineFragment extends BaseV4Fragment {
initView(); initView();
loadHeadImage(); loadHeadImage();
initListener(); initListener();
permission = new String[]{Manifest.permission.CAMERA};
permissionHelper = new PermissionHelper(this, permission, 250);
return v; return v;
} }
@ -354,6 +360,21 @@ public class MineFragment extends BaseV4Fragment {
// CallbackContext.onActivityResult(requestCode, resultCode, data); // 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 @Override
public void onClick(View v) {//点击事件 public void onClick(View v) {//点击事件
Intent i = new Intent(); Intent i = new Intent();
@ -365,9 +386,14 @@ public class MineFragment extends BaseV4Fragment {
AnimationUtil.startAnimation(getActivity()); AnimationUtil.startAnimation(getActivity());
break; break;
case R.id.rl_zxing://扫描二维码 case R.id.rl_zxing://扫描二维码
if (!permissionHelper.checkSelfPermission(permission)) {
showPermissionHint();
}else {
i.setClass(getActivity(), CaptureActivity.class); i.setClass(getActivity(), CaptureActivity.class);
startActivity(i); startActivity(i);
AnimationUtil.startAnimation(getActivity()); AnimationUtil.startAnimation(getActivity());
}
break; break;
case R.id.rl_aboutus: case R.id.rl_aboutus:
i.setClass(getActivity(), AboutActivity.class); 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();
}
});
}
} }