Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
91bf5283
authored
Jun 25, 2024
by
han xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加权限获取提示弹窗
parent
e2aa10f7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
14 deletions
baseSDK/src/main/java/com/dayu/utils/MPermissionUtils.java
baseSDK/src/main/java/com/dayu/utils/MPermissionUtils.java
View file @
91bf5283
package
com
.
dayu
.
utils
;
package
com
.
dayu
.
utils
;
import
android.Manifest
;
import
android.annotation.TargetApi
;
import
android.annotation.TargetApi
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Context
;
...
@@ -61,27 +62,96 @@ public class MPermissionUtils {
...
@@ -61,27 +62,96 @@ public class MPermissionUtils {
checkCallingObjectSuitability
(
object
);
checkCallingObjectSuitability
(
object
);
mOnPermissionListener
=
callback
;
mOnPermissionListener
=
callback
;
Activity
activity
;
if
(
object
instanceof
Activity
)
{
activity
=
(
Activity
)
object
;
}
else
if
(
object
instanceof
android
.
app
.
Fragment
)
{
activity
=
((
android
.
app
.
Fragment
)
object
).
getActivity
();
}
else
if
(
object
instanceof
Fragment
)
{
activity
=
((
Fragment
)
object
).
getActivity
();
}
else
{
return
;
}
if
(
checkPermissions
(
getContext
(
object
),
permissions
))
{
if
(
checkPermissions
(
getContext
(
object
),
permissions
))
{
if
(
mOnPermissionListener
!=
null
)
if
(
mOnPermissionListener
!=
null
)
mOnPermissionListener
.
onPermissionGranted
();
mOnPermissionListener
.
onPermissionGranted
();
}
else
{
}
else
{
List
<
String
>
deniedPermissions
=
getDeniedPermissions
(
getContext
(
object
),
permissions
);
if
(
deniedPermissions
.
size
()
>
0
)
{
String
content
=
getDefaultPermissionContent
(
permissions
);
mRequestCode
=
requestCode
;
if
(
object
instanceof
Activity
)
{
CustomDialog
mDialog
=
new
CustomDialog
(
activity
,
com
.
dayu
.
baselibrary
.
R
.
style
.
CustomDialog
,
content
((
Activity
)
object
).
requestPermissions
(
deniedPermissions
,
(
dialog
,
confirm
)
->
{
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
if
(
confirm
)
{
}
else
if
(
object
instanceof
android
.
app
.
Fragment
)
{
List
<
String
>
deniedPermissions
=
getDeniedPermissions
(
getContext
(
object
),
permissions
);
((
android
.
app
.
Fragment
)
object
).
requestPermissions
(
deniedPermissions
if
(
deniedPermissions
.
size
()
>
0
)
{
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
mRequestCode
=
requestCode
;
}
else
if
(
object
instanceof
Fragment
)
{
if
(
object
instanceof
Activity
)
{
((
Fragment
)
object
).
requestPermissions
(
deniedPermissions
((
Activity
)
object
).
requestPermissions
(
deniedPermissions
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
}
else
{
}
else
if
(
object
instanceof
android
.
app
.
Fragment
)
{
mRequestCode
=
-
1
;
((
android
.
app
.
Fragment
)
object
).
requestPermissions
(
deniedPermissions
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
}
else
if
(
object
instanceof
Fragment
)
{
((
Fragment
)
object
).
requestPermissions
(
deniedPermissions
.
toArray
(
new
String
[
deniedPermissions
.
size
()]),
requestCode
);
}
else
{
mRequestCode
=
-
1
;
}
}
}
else
{
mOnPermissionListener
.
onPermissionDenied
();
}
}
dialog
.
dismiss
();
});
mDialog
.
setTitle
(
"温馨提示"
)
.
setPositiveButton
(
"去开启"
)
.
setNegativeButton
(
"取消"
);
mDialog
.
show
();
// List<String> deniedPermissions = getDeniedPermissions(getContext(object), permissions);
// if (deniedPermissions.size() > 0) {
// mRequestCode = requestCode;
// if (object instanceof Activity) {
// ((Activity) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else if (object instanceof android.app.Fragment) {
// ((android.app.Fragment) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else if (object instanceof Fragment) {
// ((Fragment) object).requestPermissions(deniedPermissions
// .toArray(new String[deniedPermissions.size()]), requestCode);
// } else {
// mRequestCode = -1;
// }
// }
}
}
///获取默认权限提示文案
private
static
String
getDefaultPermissionContent
(
String
[]
permissions
)
{
for
(
String
permission
:
permissions
)
{
switch
(
permission
){
case
Manifest
.
permission
.
RECORD_AUDIO
:
case
Manifest
.
permission
.
CAMERA
:
return
"大鱼需要获取您的相机、录音权限,用于进行拍摄照片视频等。"
;
case
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
:
case
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
:
return
"大鱼需要获取您的相册、文件读写权限,用于保存或上传照片或文件等。"
;
case
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
:
return
"大鱼需要你的定位权限,用于记录处理sop的当前位置。"
;
default
:
return
"大鱼需要获取您的设备权限,用于进行当前业务操作。"
;
}
}
}
}
return
"大鱼需要获取您的设备权限,用于进行当前业务操作。"
;
}
}
/**
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment