Запрос на разрешение запроса не отображается пользователю AndroidAndroid

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

Сообщение Anonymous »

У меня есть простое приложение, в действии которого всего одна кнопка, и это код моего файла MainActivity.kt:

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

    package ir.alirezapersonal.startup2

import android.Manifest
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.util.Log
import androidx.activity.enableEdgeToEdge
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import ir.alirezapersonal.startup2.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}

binding.btnRequestPermissions.setOnClickListener {
requestPermissions()
}
}

private fun hasWriteExternalStoragePermission() =
ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED

private fun hasLocationForegroundPermission() =
ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED

private fun hasLocationBackgroundPermission() =
ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED

private fun requestPermissions() {
var permissionsToRequest = mutableListOf()
if(!hasWriteExternalStoragePermission()){
permissionsToRequest.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}
if(!hasLocationForegroundPermission()){
permissionsToRequest.add(Manifest.permission.ACCESS_COARSE_LOCATION)
}
if (!hasLocationBackgroundPermission()){
permissionsToRequest.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION)
}

if(permissionsToRequest.isNotEmpty()){
ActivityCompat.requestPermissions(this, permissionsToRequest.toTypedArray(),0)
}
}

override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if(requestCode == 0 && grantResults.isNotEmpty()){
for(i in grantResults.indices){
if(grantResults[i] == PackageManager.PERMISSION_GRANTED){
Log.d("PermissionRequest", "${permissions[i]} granted.")
} else {
Log.d("PermissionRequest", "${permissions[i]} NOT granted.")
}
}
}
}
}
проблема в том, что когда я нажимаю кнопку, пользователю не запрашивается запрос разрешения. я также добавил список разрешений в свой файл манифеста: Я также тестировал это приложение на устройствах Android 13 и 14, но проблема не решена.
В чем может быть проблема?< /п>

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

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

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

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

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

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