Skip to content

snu.checkSystemPermissionGranted()

是否具备指定权限

检查当前应用是否已经具备指定权限。

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
permissionsArray<String>-需要检查的系统权限名称数组。

返回值

类型必备描述
Boolean如果所有权限都已授权,返回 true,否则返回 false。

示例

typescript
const perms = ['android.permission.CAMERA', 'android.permission.INTERNET']
const granted = snu.checkSystemPermissionGranted(perms);
if (granted) {
  console.log('应用已具备所有指定权限');
} else {
  console.log('应用未具备所有指定权限');
}

snu.getSystemPermissionDenied()

获取未授权的系统权限

获取指定权限中未授权的权限。

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
permissionsArray<String>-需要检查的系统权限名称数组。

返回值

类型必备描述
Array<String>返回一个包含所有未授权权限名称的数组,如果所有权限都已授权,则返回空数组。

示例

typescript
const perms = ['android.permission.CAMERA', 'android.permission.INTERNET']
const denied = snu.getSystemPermissionDenied(perms);
if (denied.length === 0) {
  console.log('应用已具备所有指定权限');
} else {
  console.log('应用未具备以下权限:', denied);
}

snu.requestSystemPermission()

请求系统权限

向用户请求指定的系统权限。

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
optionsSnRequestSystemPermissionOptions-请求权限的配置选项。
options.permissionsArray<String>-需要请求的系统权限名称数组。
options.success(allRight: boolean, grantedList: string[])=>void-请求权限成功时的回调函数,接受两个参数:allRight(所有权限是否都已授权)和 grantedList(已授权的权限列表)。
options.fail(doNotAskAgain: boolean, grantedList: string[])=>void-请求权限失败时的回调函数,接受两个参数:doNotAskAgain(用户是否选择了不再询问)和 grantedList(已授权的权限列表)。

返回值

示例

typescript
const perms = ['android.permission.CAMERA', 'android.permission.INTERNET']
snu.requestSystemPermission({
  permissions: perms,
  success: (allRight, grantedList) => {
    if (allRight) {
      console.log('应用已具备所有指定权限');
    } else {
      console.log('应用具备以下权限:', grantedList);
    }
  },
  fail: (doNotAskAgain, grantedList) => {
    if (doNotAskAgain) {
      console.log('用户选择了不再询问,应用具备以下权限:', grantedList);
    } else {
      console.log('权限请求失败,应用具备以下权限:', grantedList);
    }
  }
})

snu.gotoSystemPermissionActivity()

跳转到系统权限设置页面

跳转到操作系统的权限设置页面,以便用户可以直接在系统设置中管理应用权限。

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
permissionsArray<String>-需要用户在系统设置中管理的权限名称数组。

返回值

示例

typescript
const perms = ['android.permission.CAMERA']
snu.gotoSystemPermissionActivity(perms);

snu.requestMediaPermission()

请求媒体权限

由于 Google 对于 Android 本地读写权限的保护的不断增强,应用适配高版本 Android 往往需要进行大量兼容判断。因此,此方法集成了媒体权限请求,可根据不同的Android版本,帮助开发者快速请求相应的媒体访问权限。目前已适配 Android 12 及以下版本、Android 13、Android 14 及以上版本。

提示

需要注意的是,应用的 mainfest 文件中需要添加以下权限声明。

xml
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
optionsSnRequestMediaPermissionOptions-请求权限的配置选项。
options.typesArray<String>-需要请求的媒体类型,可选值为 image, video, audio
options.success(allRight: boolean, grantedList: string[])=>void-请求权限成功时的回调函数
options.fail(doNotAskAgain: boolean, grantedList: string[])=>void-请求权限失败时的回调函数,接受两个参数:doNotAskAgain(用户是否选择了不再询问)和 grantedList(已授权的权限列表)。

返回值

示例

typescript
snu.requestMediaPermission({
  types: ['image', 'video'],
  success: (allRight, grantedList) => {
    if (allRight) {
      console.log('应用已具备所有指定媒体权限');
    }
  },
  fail: (doNotAskAgain, grantedList) => {
    //...
  }
})

snu.checkMediaPermission()

检查媒体权限

由于 Google 对于 Android 本地读写权限的保护的不断增强,应用适配高版本 Android 往往需要进行大量兼容判断。因此,此方法集成了媒体权限检查,可根据不同的Android版本,帮助开发者快速检查相应的媒体访问权限。目前已适配 Android 12 及以下版本、Android 13、Android 14 及以上版本。

提示

需要注意的是,应用的 mainfest 文件中需要添加以下权限声明。

xml
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />

兼容性

WebAndroid
×

属性

名称类型必填默认值描述
typesArray<String>-需要请求的媒体类型,可选值为 image, video, audio

返回值

类型必备描述
Boolean是否所有媒体权限都已授权。

示例

typescript
const granted = snu.checkMediaPermission(['image', 'video']);
if (granted) {
  console.log('应用已具备所有指定媒体权限');
}

使用 MIT 协议