美文网首页
6.0以后权限 及 跳转设置

6.0以后权限 及 跳转设置

作者: 微笑中的你 | 来源:发表于2020-05-20 16:23 被阅读0次

minSdkVersion 23

权限申请

以申请 电话权限 为例,主要代码如下:

            if (ActivityCompat.checkSelfPermission(
                    activity,
                    Manifest.permission.CALL_PHONE
                ) != PackageManager.PERMISSION_GRANTED
            ) {

                val shouldShow: Boolean =
                    ActivityCompat.shouldShowRequestPermissionRationale(
                        activity,
                        Manifest.permission.CALL_PHONE
                    )

                if (shouldShow)
                {
                    弹出一个对话框,是否跳转到设置中允许权限。。。
                    val toast = Toast.makeText(activity, "请在设置中打开电话权限", Toast.LENGTH_LONG)
                    toast.setGravity(Gravity.CENTER, 0 ,0)
                    toast.show()
                    return
                }

       
                ActivityCompat.requestPermissions(activity, Array(1){Manifest.permission.CALL_PHONE}, 1)

                return
            }

          这里是有权限,去拨打电话

跳转到设置页


        /**
         * 跳转到 app信息
         */
        fun toAppDetailSettings(context: Context) {
            val intent: Intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", context.packageName, null))
            val activities: List<ResolveInfo> = context.packageManager.queryIntentActivities(intent, 0)
            if (activities.isNotEmpty()) context.startActivity(intent)
        }

        /**
         * 跳转到手机系统设置
         */
        fun toSysSettings(context: Context) {
            toSettings(Settings.ACTION_SETTINGS, context)
        }

        /**
         * 跳转到定位设置
         */
        fun toLocationSettings(context: Context) {
            toSettings(Settings.ACTION_LOCATION_SOURCE_SETTINGS, context)
        }

        /**
         * 跳转到Wifi设置
         */
        fun toWifiSettings(context: Context) {
            toSettings(Settings.ACTION_WIFI_SETTINGS, context)
        }

        /**
         * 跳转到某个设置
         */
        fun toSettings(settings: String, context: Context) {
            val intent: Intent = Intent(settings)
            val activities: List<ResolveInfo> = context.packageManager.queryIntentActivities(intent, 0)
            if (activities.isNotEmpty()) context.startActivity(intent)
        }

相关文章

网友评论

      本文标题:6.0以后权限 及 跳转设置

      本文链接:https://www.haomeiwen.com/subject/cijnohtx.html