Como pedir permissão no Android Studio
Android Básico Kotlin

Como pedir permissão no Android Studio





Nesse tutorial vou demonstrar Como pedir permissão no Android Studio assim vamos poder utilizar os recursos do telefone ou tablet.

Primeiramente vamos criar um projeto vazio(Empty) para fazer o nosso pedido de permissão de uso de um recurso.

Se você não sabe como criar um projeto vazio então veja o tutorial Como criar um projeto no Android Studio.

Nesse tutorial vou apenas pedir uma autorização de uso de um recurso do android.

Vou utilizar o recurso de leitura de dados na memória denominado de READ_EXTERNAL_STORAGE.

Então vamos fazer este pedido de autorização de uso do recurso na linguagem Kotlin.

Vamos então editar nosso arquivo MainActivity e inserir o seguinte código para que ele verifique se existe a permissão ou não, se não houver a permissão de uso do recurso ele vai pedir para que o usuário aceite a permissão e se ela for negada a variável check vai ficar como false e assim você pode desabilitar recursos do seu projeto se ela não estiver como true.





MainActivity

package br.com.uware.permissao

import android.Manifest
import android.content.pm.PackageManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
    var check: Boolean = false
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initPermissions()
    }
    private fun initPermissions(){
        if(!getPermission()) setPermission()
        else check = true
    }
    private fun getPermission(): Boolean{
        return (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)
    }
    private fun setPermission(){
        val permissionsList = listOf<String>(
            Manifest.permission.READ_EXTERNAL_STORAGE
        )
        ActivityCompat.requestPermissions(this, permissionsList.toTypedArray(), 1)
    }
    private fun errorPermission(){
        Toast.makeText(this, "Não tem permissão para ler arquivos.", Toast.LENGTH_SHORT).show()
    }
    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        when(requestCode){
            1 -> {
                if (grantResults.isEmpty() || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                    Log.i("Permission: ", "Permission has been denied by user")
                    errorPermission()
                } else {
                    Log.i("Permission: ", "Permission has been granted by user")
                    check = true
                }
            }
        }
    }
}

E vamos inserir no Manifest uses-permission que é a permissão de uso do recurso.

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.com.uware.permissao">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Logo depois de ter feito as modificações vamos compilar e executar o nosso projeto para verificar como ele faz o pedido de permissão de uso dos recursos.

Enfim espero poder ter ajudado com mais esse tutorial sobre Como pedir permissão no Android Studio.





Rodrigo Leutz
Desenvolvedor Web e Android ( Kotlin e Java )
http://www.test.com/