获取 Android 版本 7 的权限

Getting permissions on Android version 7

我正在开发一个用于为 Android 发送短信的小应用程序。当您安装 .apk 时,Android 4.4 要求 permission 从设备发送 SMS 消息。但是 Android 7 根本不询问任何权限。但是,您需要在设置中手动开启短信发送权限,才能使应用正常运行。

有没有办法在所有 Android 系统上的安装过程中显示权限?

自 Android 6.0(API 级别 23)起,您必须在运行时请求权限。大多数应用程序会在用户首次启动应用程序时执行此操作。

要检查您是否已经拥有权限,请使用

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_SMS);

检查您是否可以阅读短信。 Return 将是 PackageManager.PERMISSION_GRANTED 如果应用程序已经有权限,否则它将是 return PackageManager.PERMISSION_DENIED.

要请求权限,请使用

ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_SMS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS);

其中 MY_PERMISSIONS_REQUEST_READ_CONTACTS 是应用程序定义的 int 常量。

The corresponding documentation will give more detail about this.

请注意:您需要在 Manifest 中定义相应的 <uses-permission> 元素,然后在运行时请求权限。

要解决此问题,只需将目标 SDK 版本降低到 23 以下即可。