Как запросить разрешение на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как запросить разрешение на Android

Сообщение Anonymous »

Я новичок в использовании Android Studio, просто хочу создать для себя базовое приложение, и я не могу запросить какое-либо разрешение на своем телефоне, он просто автоматически отказывается.
Я использую Kotlin, но также пробовал работать с Java (так как я изучал Java несколько лет назад, но так и не научился программировать на Android).
Мой телефон — OnePlus Nord 2t (если это имеет какое-то значение) ) и использует API 33. В моем проекте установлен минимальный SDK API. 30.
Я уже убедился, что с build.gradle minSDK и targetSdk все в порядке, и добавил эту строку в AndroidManifest.xml:

Код: Выделить всё

// also tried to add tools:node="replace" and tools:remove="android:maxSdkVersion" because I saw people mentioning it
Вот весь код, который у меня есть на данный момент

Код: Выделить всё

package com.example.testpermissions

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

class MainActivity : AppCompatActivity() {

private val READ_EXTERNAL_STORAGE_PERMISSION_CODE = 101

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Check if the permission is already granted
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED
) {
// Permission is already granted.
Toast.makeText(this, "already ok", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "prompting", Toast.LENGTH_SHORT).show()
// Permission is not granted.
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
READ_EXTERNAL_STORAGE_PERMISSION_CODE
)
}
}

override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

if (requestCode == READ_EXTERNAL_STORAGE_PERMISSION_CODE) {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted.
Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "not ok", Toast.LENGTH_SHORT).show()
// Permission denied by the user.
}
}
}
}

Как видите, я использовал Toasts, чтобы увидеть, что работает, а что нет, и все, что у меня есть, это «подсказка», а затем «не ок», и после этого приложение продолжает нормально работать.
p>
Заранее спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/770 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»