ActivityCompat.requestPermissions不起作用

调用ActivityCompat.requestPermissions不会显示UI对话框。

ActivityCompat.requestPermissions(MainActivity.this, new String[]{"Manifest.permission.READ_SMS"}, REQUEST_CODE_ASK_PERMISSIONS); 

但是,如果我将minSDKversion更改为23并运行

 requestPermissions(new String[]{"android.permission.READ_SMS"}, REQUEST_CODE_ASK_PERMISSIONS); 

出现对话框。 为什么? BTW。 在模拟器上运行它需要模拟器将针对API 23。

Solutions Collecting From Web of "ActivityCompat.requestPermissions不起作用"

为什么?

可能是因为您在第一个代码段中拥有错误的权限名称。 可以使用:

 Manifest.permission.READ_SMS 

或使用:

 "android.permission.READ_SMS" 

不使用:

 "Manifest.permission.READ_SMS" 

新版本的Android Studio会在创build新项目的build.gradle文件中自动添加AppCompat库和Androiddevise支持库依赖关系。 如果不将以下两行添加到应用程序的build.gradle文件的依赖项部分。

 compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' 

检查您是否已经像Android M之前一样在Android的清单文件中添加了请求的权限,只有这样您才能得到预期的行为。

将权限添加到您的清单:

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