if (ContextCompat.checkSelfPermission(this, Manifest. permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
时间: 2024-04-20 11:25:36 浏览: 10
如果上下文中的应用程序没有被授予拨打电话的权限(CALL_PHONE),则执行某些操作。
`ContextCompat.checkSelfPermission()` 是一个方法,用于检查应用程序是否被授予特定权限。它需要两个参数:
- `this`:上下文对象,通常是当前活动或服务的实例。
- `Manifest.permission.CALL_PHONE`:要检查的权限,这里是拨打电话的权限。
`PackageManager.PERMISSION_GRANTED` 是一个常量,表示权限已授予。
因此,以上代码片段的含义是,如果应用程序没有被授予拨打电话的权限,则执行一些操作。
相关问题
public void getPermission() { if (ContextCompat.checkSelfPermission(OldManActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(OldManActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1); } else { //拨打电话 call(); } }
这是一个 Android 中用于获取权限的方法。在这个例子中,我们要获取拨打电话的权限。首先,使用 `ContextCompat.checkSelfPermission` 方法检查应用是否已经被授权拨打电话权限,如果没有被授权,就使用 `ActivityCompat.requestPermissions` 方法请求权限。`requestPermissions` 方法需要传入一个权限数组和一个请求码,这里请求码设为 1。如果已经被授权,就直接调用 `call` 方法拨打电话。
需要注意的是,在调用 `requestPermissions` 方法后,系统会弹出一个权限请求对话框,询问用户是否同意授权。用户可以选择允许或拒绝,如果用户选择拒绝,应用将无法拨打电话。因此,在应用中使用权限时,应该确保用户已经授权,或者在用户拒绝授权时给出合适的提示。
android中报错: Cannot resolve symbol 'INJECT_EVENTS' . 相关的代码: ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.INJECT_EVENTS) != PackageManager.PERMISSION_GRANTED
`INJECT_EVENTS` 是 Android 6.0 (API level 23) 引入的一个隐藏权限,用于允许应用程序注入用户输入事件。但是,从 Android 8.0 (API level 26) 开始,该权限已经被弃用,并且不能再被应用程序使用。
因此,`Manifest.permission.INJECT_EVENTS` 这个常量在 Android Studio 中会被标记为错误。你可以通过以下方法来解决这个问题:
1. 将 `Manifest.permission.INJECT_EVENTS` 替换为 `Manifest.permission.USE_FINGERPRINT`,这是一个可以替代 `INJECT_EVENTS` 的权限常量。但是,这个权限也已经被标记为弃用,建议你不要使用这个权限。
2. 如果你只是想检查应用程序是否被授予了权限,可以使用 `ContextCompat.checkSelfPermission()` 方法和相应的权限常量。例如,如果你想检查应用程序是否被授予读取外部存储器的权限,可以使用以下代码:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
// 已经被授予了读取外部存储器的权限
} else {
// 还没有被授予读取外部存储器的权限,需要请求权限
}
```
在这个例子中,`Manifest.permission.READ_EXTERNAL_STORAGE` 是一个常量,用于指定读取外部存储器的权限。
希望这可以帮助你解决这个问题。