Я использую 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.
}
}
}
}
p>
Заранее спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/770 ... on-android
Мобильная версия