我一直在与人工智能合作来获取显示的权限窗口,但是当我按下按钮时没有任何显示。这是我们想出的代码
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var permissionGranted = false
setContent {
PermissionsTheme {
// A surface container using the 'background' color from the theme
val permissionLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestPermission() // Specify single permission request
) { result ->
permissionGranted = result
// Update UI based on permission result directly within the lambda
}
Button(onClick = {
permissionLauncher.launch(Manifest.permission.INTERNET)
}) {
Text(text = "Request Internet Permission")
}
// UI will update immediately after permission dialog closes
if (permissionGranted) {
Text(text = "Allowed")
} else {
Text(text = "Denied")
}
}
}
}
}
和清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<application
我构建了很多使用权限的小应用程序,但我总是遇到问题。我一直在关注有关权限的教程,我已经阅读了有关权限的 Android 开发人员指南。我深入研究了人工智能许可流程的每一条语句,我要求人工智能为我编写一个基本的许可应用程序,但我就是无法让它工作。我做错了什么?
android.permission.INTERNET 是安装时权限,而不是运行时权限。这记录在developer.android 上的连接到网络文档中。
我在这里找到了一个关于使用 Jetpack Compose 请求权限的非常简洁的教程,它可以更好地解释该过程。