|
@@ -13,8 +13,6 @@ import android.provider.Settings;
|
|
|
import android.telephony.TelephonyManager;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
-import androidx.annotation.RequiresApi;
|
|
|
-
|
|
|
import com.qw.soul.permission.SoulPermission;
|
|
|
import com.qw.soul.permission.bean.Permission;
|
|
|
import com.qw.soul.permission.bean.Permissions;
|
|
@@ -92,14 +90,14 @@ public class UtilsWithPermission {
|
|
|
/**
|
|
|
* 获取摄像头/读写权限
|
|
|
*/
|
|
|
- public static void getCameraPermission(final PermissionsListener listener){
|
|
|
+ public static void getCameraPermission(final PermissionsListener listener) {
|
|
|
SoulPermission.getInstance().checkAndRequestPermissions(
|
|
|
Permissions.build(Manifest.permission.CAMERA,
|
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE),
|
|
|
new CheckPermissionsAdapter() {
|
|
|
@Override
|
|
|
public void onAllPermissionOk(Permission[] allPermissions) {
|
|
|
- if (listener!=null) {
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionsOk();
|
|
|
}
|
|
|
}
|
|
@@ -107,7 +105,7 @@ public class UtilsWithPermission {
|
|
|
@Override
|
|
|
public void onPermissionDenied(Permission[] refusedPermissions) {
|
|
|
super.onPermissionDenied(refusedPermissions);
|
|
|
- if (listener!=null) {
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionsDenied();
|
|
|
}
|
|
|
}
|
|
@@ -117,13 +115,13 @@ public class UtilsWithPermission {
|
|
|
/**
|
|
|
* 获取自定义权限组
|
|
|
*/
|
|
|
- public static void getPermissions(final PermissionsListener listener,String... permissions) {
|
|
|
+ public static void getPermissions(final PermissionsListener listener, String... permissions) {
|
|
|
SoulPermission.getInstance().checkAndRequestPermissions(
|
|
|
Permissions.build(permissions),
|
|
|
new CheckPermissionsAdapter() {
|
|
|
@Override
|
|
|
public void onAllPermissionOk(Permission[] allPermissions) {
|
|
|
- if (listener!=null) {
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionsOk();
|
|
|
}
|
|
|
}
|
|
@@ -131,7 +129,7 @@ public class UtilsWithPermission {
|
|
|
@Override
|
|
|
public void onPermissionDenied(Permission[] refusedPermissions) {
|
|
|
super.onPermissionDenied(refusedPermissions);
|
|
|
- if (listener!=null) {
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionsDenied();
|
|
|
}
|
|
|
}
|
|
@@ -140,20 +138,21 @@ public class UtilsWithPermission {
|
|
|
|
|
|
/**
|
|
|
* 6.0获取蓝牙权限
|
|
|
+ *
|
|
|
* @param listener
|
|
|
*/
|
|
|
public static void getBlueToothPermission(final PermissionsListener listener) {
|
|
|
- SoulPermission.getInstance().checkAndRequestPermissions(
|
|
|
- Permissions.build(Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
|
- Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.BLUETOOTH_SCAN,
|
|
|
- Manifest.permission.BLUETOOTH_ADVERTISE,
|
|
|
- Manifest.permission.BLUETOOTH_CONNECT),
|
|
|
- new CheckPermissionsAdapter() {
|
|
|
- @Override
|
|
|
- public void onAllPermissionOk(Permission[] allPermissions) {
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
|
+ if (Build.VERSION.SDK_INT >= 31) {
|
|
|
+ SoulPermission.getInstance().checkAndRequestPermissions(
|
|
|
+ Permissions.build(Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
|
+ Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.BLUETOOTH_SCAN,
|
|
|
+ Manifest.permission.BLUETOOTH_ADVERTISE,
|
|
|
+ Manifest.permission.BLUETOOTH_CONNECT),
|
|
|
+ new CheckPermissionsAdapter() {
|
|
|
+ @Override
|
|
|
+ public void onAllPermissionOk(Permission[] allPermissions) {
|
|
|
LocationManager alm = (LocationManager) SDKUtils.mContext.getSystemService(Context.LOCATION_SERVICE);
|
|
|
- if (!alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
|
|
|
+ if (!alm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
|
|
ToastUtils.showToast("请开启定位服务!");
|
|
|
Intent intent = new Intent();
|
|
|
intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
|
|
@@ -161,33 +160,65 @@ public class UtilsWithPermission {
|
|
|
SDKUtils.mContext.startActivity(intent);
|
|
|
return;
|
|
|
}
|
|
|
+ if (listener != null) {
|
|
|
+ listener.onPermissionsOk();
|
|
|
+ }
|
|
|
}
|
|
|
- if (listener!=null) {
|
|
|
- listener.onPermissionsOk();
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onPermissionDenied(Permission[] refusedPermissions) {
|
|
|
+ super.onPermissionDenied(refusedPermissions);
|
|
|
+ if (listener != null) {
|
|
|
+ listener.onPermissionsDenied();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ SoulPermission.getInstance().checkAndRequestPermissions(
|
|
|
+ Permissions.build(Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
|
+ Manifest.permission.ACCESS_FINE_LOCATION),
|
|
|
+ new CheckPermissionsAdapter() {
|
|
|
+ @Override
|
|
|
+ public void onAllPermissionOk(Permission[] allPermissions) {
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
|
|
+ LocationManager alm = (LocationManager) SDKUtils.mContext.getSystemService(Context.LOCATION_SERVICE);
|
|
|
+ if (!alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
|
|
|
+ ToastUtils.showToast("请开启定位服务!");
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
|
|
|
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
|
+ SDKUtils.mContext.startActivity(intent);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (listener != null) {
|
|
|
+ listener.onPermissionsOk();
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public void onPermissionDenied(Permission[] refusedPermissions) {
|
|
|
- super.onPermissionDenied(refusedPermissions);
|
|
|
- if (listener!=null) {
|
|
|
- listener.onPermissionsDenied();
|
|
|
+ @Override
|
|
|
+ public void onPermissionDenied(Permission[] refusedPermissions) {
|
|
|
+ super.onPermissionDenied(refusedPermissions);
|
|
|
+ if (listener != null) {
|
|
|
+ listener.onPermissionsDenied();
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 读写文件权限
|
|
|
* 读写文件权限是一组,只要一个授权就可以
|
|
|
+ *
|
|
|
* @param listener
|
|
|
*/
|
|
|
- public static void getReadAndWritePermission(final PermissionListener listener){
|
|
|
+ public static void getReadAndWritePermission(final PermissionListener listener) {
|
|
|
SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, new CheckPermissionAdapter() {
|
|
|
@SuppressLint("MissingPermission")
|
|
|
@Override
|
|
|
public void onPermissionOk(Permission permission) {
|
|
|
- if (listener!=null){
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionOk();
|
|
|
}
|
|
|
}
|
|
@@ -195,7 +226,7 @@ public class UtilsWithPermission {
|
|
|
@Override
|
|
|
public void onPermissionDenied(Permission permission) {
|
|
|
super.onPermissionDenied(permission);
|
|
|
- if (listener!=null){
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionDenied();
|
|
|
}
|
|
|
}
|
|
@@ -204,6 +235,7 @@ public class UtilsWithPermission {
|
|
|
|
|
|
/**
|
|
|
* 6.0获取通知权限
|
|
|
+ *
|
|
|
* @param listener
|
|
|
*/
|
|
|
public static void getNotification(final PermissionListener listener) {
|
|
@@ -211,7 +243,7 @@ public class UtilsWithPermission {
|
|
|
SoulPermission.getInstance().checkAndRequestPermission(Manifest.permission.ACCESS_NOTIFICATION_POLICY, new CheckPermissionAdapter() {
|
|
|
@Override
|
|
|
public void onPermissionOk(Permission permission) {
|
|
|
- if (listener!=null){
|
|
|
+ if (listener != null) {
|
|
|
listener.onPermissionOk();
|
|
|
}
|
|
|
}
|
|
@@ -219,13 +251,15 @@ public class UtilsWithPermission {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public interface PermissionListener{
|
|
|
+ public interface PermissionListener {
|
|
|
void onPermissionOk();
|
|
|
+
|
|
|
void onPermissionDenied();
|
|
|
}
|
|
|
|
|
|
public interface PermissionsListener {
|
|
|
void onPermissionsOk();
|
|
|
+
|
|
|
void onPermissionsDenied();
|
|
|
}
|
|
|
}
|