fix: 修改ocr申请权限错误的问题
This commit is contained in:
parent
6a5b6a5f19
commit
26f6627be0
@ -2,6 +2,26 @@ plugins {
|
|||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
id 'kotlin-android'
|
id 'kotlin-android'
|
||||||
id 'kotlin-kapt'
|
id 'kotlin-kapt'
|
||||||
|
id 'org.sonarqube'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sonarqube {
|
||||||
|
properties {
|
||||||
|
//Sonar服务器地址
|
||||||
|
property "sonar.host.url", "http://10.130.14.162:9000/"
|
||||||
|
//Token模式
|
||||||
|
// property "sonar.login","TRD2022"
|
||||||
|
//账号密码模式
|
||||||
|
property "sonar.login","TRD2022"
|
||||||
|
property "sonar.password","TRD2022"
|
||||||
|
property "sonar.sourceEncoding", "UTF-8"
|
||||||
|
property "sonar.projectKey", "Android_DuoApp"
|
||||||
|
property "sonar.projectName", project.name
|
||||||
|
//需要扫描的上传检测代码的模块,可以选择也可以配置哪一些需要或者不需要上传的模块(这里指APP模块下面的java包里面的全部)
|
||||||
|
property "sonar.sources", "src/main/java"
|
||||||
|
property "sonar.projectVersion", project.version
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//apply plugin: 'com.android.application'
|
//apply plugin: 'com.android.application'
|
||||||
//apply plugin: 'kotlin-android'
|
//apply plugin: 'kotlin-android'
|
||||||
@ -17,8 +37,8 @@ android {
|
|||||||
applicationId "com.navinfo.outdoor"
|
applicationId "com.navinfo.outdoor"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
versionCode 50
|
versionCode 52
|
||||||
versionName "8.230406-测试版"
|
versionName "8.230418-正式环境-测试版"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
ndk {
|
ndk {
|
||||||
@ -46,8 +66,8 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_11
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
ndkVersion '21.3.6528147'
|
ndkVersion '21.3.6528147'
|
||||||
packagingOptions {
|
packagingOptions {
|
||||||
@ -155,7 +175,7 @@ dependencies {
|
|||||||
// implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.4.9'
|
// implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.4.9'
|
||||||
|
|
||||||
// 权限请求框架:https://github.com/getActivity/XXPermissions
|
// 权限请求框架:https://github.com/getActivity/XXPermissions
|
||||||
implementation 'com.github.getActivity:XXPermissions:11.6'
|
implementation 'com.github.getActivity:XXPermissions:18.0'
|
||||||
|
|
||||||
//room 数据库
|
//room 数据库
|
||||||
def room_version = "2.2.0-alpha01"
|
def room_version = "2.2.0-alpha01"
|
||||||
|
@ -219,6 +219,11 @@
|
|||||||
android:name="com.umeng.message.UmengMessageIntentReceiverService"
|
android:name="com.umeng.message.UmengMessageIntentReceiverService"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
tools:replace="android:exported" />
|
tools:replace="android:exported" />
|
||||||
|
|
||||||
|
<!-- 告知 XXPermissions 当前项目已经适配了分区存储特性 -->
|
||||||
|
<meta-data
|
||||||
|
android:name="ScopedStorage"
|
||||||
|
android:value="true" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -127,13 +127,13 @@ public class MainActivity extends BaseActivity {
|
|||||||
// 申请多个权限
|
// 申请多个权限
|
||||||
//.permission(Permission.Group.CALENDAR)
|
//.permission(Permission.Group.CALENDAR)
|
||||||
// 申请读写外部存储卡
|
// 申请读写外部存储卡
|
||||||
.permission(Permission.MANAGE_EXTERNAL_STORAGE /*, Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE*/)
|
.permission(/*Permission.MANAGE_EXTERNAL_STORAGE,*/ Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE)
|
||||||
// 申请相机权限
|
// 申请相机权限
|
||||||
.permission(Permission.CAMERA)
|
.permission(Permission.CAMERA)
|
||||||
.permission(Permission.REQUEST_INSTALL_PACKAGES)
|
.permission(Permission.REQUEST_INSTALL_PACKAGES)
|
||||||
// 位置权限
|
// 位置权限
|
||||||
.permission(Permission.ACCESS_FINE_LOCATION)
|
.permission(Permission.ACCESS_FINE_LOCATION)
|
||||||
.permission(Permission.ACCESS_MEDIA_LOCATION)
|
// .permission(Permission.ACCESS_MEDIA_LOCATION)
|
||||||
//.permission(Permission.ACCESS_BACKGROUND_LOCATION)
|
//.permission(Permission.ACCESS_BACKGROUND_LOCATION)
|
||||||
.permission(Permission.ACCESS_COARSE_LOCATION)
|
.permission(Permission.ACCESS_COARSE_LOCATION)
|
||||||
//读写权限
|
//读写权限
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
package com.navinfo.outdoor.base;
|
package com.navinfo.outdoor.base;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import android.os.Environment;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@ -18,10 +23,14 @@ import android.widget.TextView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.content.PermissionChecker;
|
||||||
|
|
||||||
|
import com.baidu.ai.edge.core.base.Consts;
|
||||||
import com.github.lazylibrary.util.StringUtils;
|
import com.github.lazylibrary.util.StringUtils;
|
||||||
import com.jcodecraeer.xrecyclerview.XRecyclerView;
|
import com.jcodecraeer.xrecyclerview.XRecyclerView;
|
||||||
import com.navinfo.outdoor.R;
|
import com.navinfo.outdoor.R;
|
||||||
@ -59,6 +68,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
initView();
|
initView();
|
||||||
initData();
|
initData();
|
||||||
initListener();
|
initListener();
|
||||||
|
requestPermission();
|
||||||
if (!EventBus.getDefault().isRegistered(this)) {
|
if (!EventBus.getDefault().isRegistered(this)) {
|
||||||
EventBus.getDefault().register(this);
|
EventBus.getDefault().register(this);
|
||||||
}
|
}
|
||||||
@ -177,4 +187,83 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||||||
startActivityForResult(intent, 0);
|
startActivityForResult(intent, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static final int REQUEST_PERMISSION = 1;
|
||||||
|
|
||||||
|
protected boolean allPermissionsGranted;
|
||||||
|
|
||||||
|
|
||||||
|
private void requestPermission() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
String[] permissions = new String[]{
|
||||||
|
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
|
};
|
||||||
|
allPermissionsGranted = true;
|
||||||
|
for (String perm : permissions) {
|
||||||
|
if ((PermissionChecker.checkSelfPermission(this, perm) != PermissionChecker.PERMISSION_GRANTED)) {
|
||||||
|
allPermissionsGranted = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!allPermissionsGranted) {
|
||||||
|
ActivityCompat.requestPermissions(BaseActivity.this, permissions, REQUEST_PERMISSION);
|
||||||
|
} else {
|
||||||
|
requestAllFilesAccess();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
allPermissionsGranted = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
|
||||||
|
@NonNull int[] grantResults) {
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
if (requestCode == REQUEST_PERMISSION) {
|
||||||
|
allPermissionsGranted = true;
|
||||||
|
for (int grantRes : grantResults) {
|
||||||
|
if (grantRes != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
allPermissionsGranted = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (allPermissionsGranted) {
|
||||||
|
requestAllFilesAccess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Android 11 跳转到设置获取SD卡根目录写入权限
|
||||||
|
*/
|
||||||
|
private void requestAllFilesAccess() {
|
||||||
|
if (!Consts.AUTH_REQUIRE_SDCARD) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
|
||||||
|
allPermissionsGranted = false;
|
||||||
|
|
||||||
|
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(BaseActivity.this,
|
||||||
|
R.style.Theme_AppCompat_Light_Dialog_Alert);
|
||||||
|
alertBuilder.setMessage("需授权访问SD卡文件");
|
||||||
|
alertBuilder.setCancelable(false);
|
||||||
|
alertBuilder.setPositiveButton("去设置", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
alertBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
dialog.dismiss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
alertBuilder.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1620,41 +1620,43 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
|
|||||||
// 5 用户给予权限进行相应操作
|
// 5 用户给予权限进行相应操作
|
||||||
// 6 用户没有给予权限 作出相应提示
|
// 6 用户没有给予权限 作出相应提示
|
||||||
// 7 某些5.0权限的手机执行相应操作
|
// 7 某些5.0权限的手机执行相应操作
|
||||||
XXPermissions.with(this)
|
//建立定位
|
||||||
// 位置权限
|
initLocation();
|
||||||
.permission(Permission.ACCESS_COARSE_LOCATION)
|
// XXPermissions.with(this)
|
||||||
.permission(Permission.ACCESS_FINE_LOCATION)
|
// // 位置权限
|
||||||
.permission(Permission.ACCESS_MEDIA_LOCATION)
|
// .permission(Permission.ACCESS_COARSE_LOCATION)
|
||||||
//.permission(Permission.ACCESS_BACKGROUND_LOCATION)
|
// .permission(Permission.ACCESS_FINE_LOCATION)
|
||||||
.request(new OnPermissionCallback() {
|
//// .permission(Permission.ACCESS_MEDIA_LOCATION)
|
||||||
@Override
|
// //.permission(Permission.ACCESS_BACKGROUND_LOCATION)
|
||||||
public void onGranted(List<String> permissions, boolean all) {
|
// .request(new OnPermissionCallback() {
|
||||||
if (all) {
|
// @Override
|
||||||
//建立定位
|
// public void onGranted(List<String> permissions, boolean all) {
|
||||||
initLocation();
|
// if (all) {
|
||||||
} else {
|
// //建立定位
|
||||||
dismissLoadingDialog();
|
// initLocation();
|
||||||
ToastUtils.Message(getActivity(), "申请权限失败");
|
// } else {
|
||||||
}
|
// dismissLoadingDialog();
|
||||||
}
|
// ToastUtils.Message(getActivity(), "申请权限失败");
|
||||||
|
// }
|
||||||
@Override
|
// }
|
||||||
public void onDenied(List<String> permissions, boolean never) {
|
//
|
||||||
dismissLoadingDialog();
|
// @Override
|
||||||
if (never) {
|
// public void onDenied(List<String> permissions, boolean never) {
|
||||||
DialogSettings.style = DialogSettings.STYLE.STYLE_IOS;
|
// dismissLoadingDialog();
|
||||||
DialogSettings.cancelable = false;
|
// if (never) {
|
||||||
MessageDialog.show((AppCompatActivity) requireActivity(), "提示", permissions.toString() + " 被永久拒绝授权,请手动授予定位权限,", "确定").setOkButton(new OnDialogButtonClickListener() {
|
// DialogSettings.style = DialogSettings.STYLE.STYLE_IOS;
|
||||||
@Override
|
// DialogSettings.cancelable = false;
|
||||||
public boolean onClick(BaseDialog baseDialog, View v) {
|
// MessageDialog.show((AppCompatActivity) requireActivity(), "提示", permissions.toString() + " 被永久拒绝授权,请手动授予定位权限,", "确定").setOkButton(new OnDialogButtonClickListener() {
|
||||||
XXPermissions.startPermissionActivity(requireActivity(), permissions);
|
// @Override
|
||||||
getActivity().finish();
|
// public boolean onClick(BaseDialog baseDialog, View v) {
|
||||||
return false;
|
// XXPermissions.startPermissionActivity(requireActivity(), permissions);
|
||||||
}
|
// getActivity().finish();
|
||||||
});
|
// return false;
|
||||||
}
|
// }
|
||||||
}
|
// });
|
||||||
});
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
/*设置定位图标样式*/
|
/*设置定位图标样式*/
|
||||||
|
@ -3,8 +3,8 @@ package com.navinfo.outdoor.http;
|
|||||||
public class HttpInterface {
|
public class HttpInterface {
|
||||||
// public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP
|
// public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP
|
||||||
public static final String IP0 = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网
|
public static final String IP0 = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网
|
||||||
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
|
public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
|
||||||
public static final String IP2 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
|
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
|
||||||
public static final String USER_PATH = "/user/";//我的
|
public static final String USER_PATH = "/user/";//我的
|
||||||
public static final String MSG_LIST_PATH = "/msgList/";//发现
|
public static final String MSG_LIST_PATH = "/msgList/";//发现
|
||||||
public static final String USER_LOGIN_PATH = "/userlogin/";//登录
|
public static final String USER_LOGIN_PATH = "/userlogin/";//登录
|
||||||
|
@ -29,6 +29,7 @@ buildscript {
|
|||||||
classpath 'com.android.tools.build:gradle:7.0.0'
|
classpath 'com.android.tools.build:gradle:7.0.0'
|
||||||
//对kotlin支持
|
//对kotlin支持
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7'
|
||||||
}
|
}
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
@ -22,3 +22,4 @@ systemProp.https.proxyPort=1080
|
|||||||
# Automatically convert third-party libraries to use AndroidX
|
# Automatically convert third-party libraries to use AndroidX
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
android.injected.testOnly=false
|
android.injected.testOnly=false
|
||||||
|
org.gradle.java.home = C:\\Program Files\\OpenJDK\\jdk-11.0.15.10-hotspot
|
||||||
|
Loading…
x
Reference in New Issue
Block a user