if (ContextCompat.checkSelfPermission(this, Manifest. permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
时间: 2024-04-20 21:25:36 浏览: 243
如果上下文中的应用程序没有被授予拨打电话的权限(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` 方法后,系统会弹出一个权限请求对话框,询问用户是否同意授权。用户可以选择允许或拒绝,如果用户选择拒绝,应用将无法拨打电话。因此,在应用中使用权限时,应该确保用户已经授权,或者在用户拒绝授权时给出合适的提示。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bluetooth_list); btAdapter = BluetoothAdapter.getDefaultAdapter(); if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED || checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{ Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT }, 1); Log.d(TAG, "onCreate: reuqest permission"); }
这段代码实现了蓝牙设备列表的显示,并且进行了权限检查和请求。在onCreate()方法中,首先通过setContentView()方法加载了布局文件activity_bluetooth_list.xml,然后获取了默认的蓝牙适配器BluetoothAdapter。接着,通过调用checkSelfPermission()方法对三个权限ACCESS_FINE_LOCATION、BLUETOOTH_SCAN、BLUETOOTH_CONNECT进行检查,如果其中任何一个权限未被授予,则通过调用requestPermissions()方法请求这三个权限,并在Logcat中输出相应的日志信息。
阅读全文