0.1.1 • Published 4 years ago

react-native-lk-permission v0.1.1

Weekly downloads
33
License
-
Repository
-
Last release
4 years ago

react-native-lk-permission

Android危险权限管理、悬浮窗权限管理,目前已经适配市场主流的手机。

如何使用

  • $ npm install react-native-lk-permission --save$ yarn add react-native-lk-permission --save

  • 自动配置(针对 React Native 0.59 and lower)

    $ react-native link react-native-lk-permission

  • 手动配置(针对 React Native 0.59 and lower)

    • Open up android/app/src/main/java/[...]/MainActivity.java

      • Add import com.like.permission.RNPermissionPackage; to the imports at the top of the file
      • Add new RNPermissionPackage() to the list returned by the getPackages() method
    • Append the following lines to android/settings.gradle:

      include ':react-native-permission'
      project(':react-native-permission').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-permission/android')
    • Insert the following lines inside the dependencies block in android/app/build.gradle:
      implementation project(':react-native-permission')
  • 注意(任何 ReactNative 都需要配置)

    MainActivity.java中引入import com.like.permission.PermissionUtil;,并添加如下代码

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        PermissionUtil.getInstance().onRequestPermissionsResult(requestCode,permissions,grantResults);
    }

API

  • 常量

    常量名权限含义
    RECORD_AUDIO允许程序录制声音通过手机或耳机的麦克
    GET_ACCOUNTS允许程序访问账户Gmail列表
    READ_PHONE_STATE允许程序访问电话状态
    CALL_PHONE允许程序从非系统拨号器里拨打电话
    CAMERA允许程序访问摄像头进行拍照
    ACCESS_FINE_LOCATION允许程序通过GPS芯片接收卫星的定位信息
    ACCESS_COARSE_LOCATION允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息
    READ_EXTERNAL_STORAGE程序可以读取设备外部存储空间
    WRITE_EXTERNAL_STORAGE允许程序写入外部存储
    READ_CALENDAR允许程序读取用户的日程信息
    WRITE_CALENDAR允许程序写入日程,但不可读取
    READ_CONTACTS允许程序访问联系人通讯录信息
    WRITE_CONTACTS写入联系人,但不可读取
    READ_CALL_LOG读取通话记录
    WRITE_CALL_LOG允许程序写入(但是不能读)用户的联系人数据
    ADD_VOICEMAIL允许一个应用程序添加语音邮件系统
    USE_SIP允许程序使用SIP视频服务
    PROCESS_OUTGOING_CALLS允许程序监视,修改或放弃播出电话
    BODY_SENSORS自身状态
    SEND_SMS允许程序发送短信
    RECEIVE_SMS允许程序接收短信
    READ_SMS允许程序读取短信内容
    RECEIVE_WAP_PUSH允许程序接收WAP PUSH信息
    RECEIVE_MMS允许程序接收彩信

  • checkSelfPermission(params,callback) 检测单个权限

    • params 权限字符串,可直接使用常量中参数
    • callback 回调,对象形式,key值为权限字符串,value是布尔型
    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.checkSelfPermission(Permission.RECORD_AUDIO, result => {
        console.log(result)
      })
      //{"android.permission.RECORD_AUDIO":false}
  • checkSelfPermissions(params,callback) 检测多个权限

    • params 权限数组,可直接使用常量中参数
    • callback 回调,对象形式,key值为权限字符串,value是布尔型
    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.checkSelfPermissions([ Permission.RECORD_AUDIO, Permission.CALL_PHONE, Permission.SEND_SMS ], result => {
        console.log(result)
      })
      //{"android.permission.RECORD_AUDIO":false,"android.permission.CALL_PHONE":true,"android.permission.SEND_SMS":false}
  • shouldShowRequestPermissionRationale(callback) 用户请求过权限,被拒绝后的状态

    • params 权限字符串,可直接使用常量中参数
    • callback 布尔型
    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.shouldShowRequestPermissionRationale(Permission.RECORD_AUDIO,status => {
        console.log(result)
      })
      //false
  • requestPermission(params,callback) 请求单个权限

    • params 权限字符串,可直接使用常量中参数
    • callback 回调,对象形式,key值为权限字符串,value是布尔型
    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.requestPermission(Permission.RECORD_AUDIO, result => {
        console.log(result)
      })
      //{"android.permission.RECORD_AUDIO":false}
  • requestPermissions(params,callback) 请求权限组

    • params 权限数组,可直接使用常量中参数
    • callback 回调,对象形式,key值为权限字符串,value是布尔型
    • 示例

       import Permission from 'react-native-lk-permission'
      
       Permission.requestPermissions([ Permission.RECORD_AUDIO, Permission.CALL_PHONE, Permission.SEND_SMS ], result => {
         console.log(result)
       })
       //{"android.permission.RECORD_AUDIO":true,"android.permission.CALL_PHONE":true,"android.permission.SEND_SMS":false}
  • checkFloatWindowPermissions(callback) 查看悬浮窗状态

    • callback 布尔型,true表示拥有悬浮窗权限,false没有权限
    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.checkFloatWindowPermissions(status => {
        console.log(result)
      })
      //true
  • openFloatWindowSetting() 打开悬浮窗设置

    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.openFloatWindowSetting()
  • openSetting() 打开系统设置界面

    • 示例
      import Permission from 'react-native-lk-permission'
    
      Permission.openSetting()
0.1.1

4 years ago

0.1.0

4 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago