首页 > 解决方案 > 请求权限对话框未出现 Android 6.0.1

问题描述

我正在尝试Write_external_storage在应用程序开始时获得许可。但我看不到权限框。这是我的代码:

override fun onStart() {
        .....

        if (Singleton.isPermissionGranted(this)) {
            btn_submit_t.isEnabled
        } else {
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1)
        }
        super.onStart()
    }

然后我补充说onRequestPermissionsResult

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        when (requestCode) {
            1 -> {
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Log.i("m","permission_is_granted")
                    // permission was granted, yay! Do the
                    // contacts-related task you need to do.
                } else {

                    // permission denied, boo! Disable the
                    // functionality that depends on this permission.
                    Toast.makeText(this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show()
                    Handler().postDelayed({
                        if (Build.VERSION.SDK_INT >= 23) {
                            if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                                    == PackageManager.PERMISSION_GRANTED) {
                                //your permission is granted

                            } else {
                                ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1)
                            }
                        }
                        else {
                            //permission is automatically granted on devices lower than android M upon installation
                        }
                        //ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1)
                    }, 100)

                }
                return
            }
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    }

我在不同的设备上测试过,我的问题出现在安卓6.0.1版本的小米设备上。我还添加了检查,但它对我没有帮助。问题可能出在哪里?

标签: androidkotlinandroid-permissions

解决方案


您是否在清单文件中添加了“写入外部存储”权限?


推荐阅读