Kotlin:应用程序未向用户询问权限

我正在创建一个读取用户SMS消息的Android应用程序。我首先检查用户是否已授予我使用if条件读取SMS消息的权限。我已验证我的测试电话在执行打印语句时未授予访问该应用程序的权限以读取SMS消息。但是,不会触发requestPermissions方法(没有弹出窗口要求授予许可来读取SMS消息)。我怀疑我可能使用了错误的权限代码或错误的方法。我的Manifest.xml文件中包含以下权限:

<uses-permission android:name="android.permission.SEND_SMS"/>

下面是我的Kotlin代码:

// See if the user has not granted permission to read his or her text messages
if (activityCompat.checkSelfPermission(this,Manifest.permission.READ_SMS) == PackageManager.PERMISSION_DENIED) {
    // Request the user to grant permission to read SMS messages
    activityCompat.requestPermissions(this,arrayOf(Manifest.permission.READ_SMS),2);
    System.out.println("Permission Denied")
}
ly13644593292 回答:Kotlin:应用程序未向用户询问权限

AndroidManifest.xml中添加READ_SMS 许可。

使用

<uses-permission android:name="android.permission.READ_SMS"/>

代替

<uses-permission android:name="android.permission.SEND_SMS"/>
,

正如评论中提到的,您已经在SEND_SMS文件中声明了Manifest.xml权限,并动态(运行时)请求了READ_SMS权限。

此外,除非应用程序充当默认消息传递应用程序,否则不建议使用此权限。请仔细阅读文档Manifest.permission.READ_SMS,其中声明如下

  

这是一个严格的受限许可,不能由应用程序持有   直到记录的安装程序将许可白名单。欲了解更多   详细请看   PackageInstaller.SessionParams.setWhitelistedRestrictedPermissions(Set)

本文链接:https://www.f2er.com/3147812.html

大家都在问