blob: 952281fc8a243020cc5ceee0257e95270cf7d622 [file] [log] [blame]
Jakub Pawlowskid717e1a2017-11-03 18:56:58 -07001/*
2 * Copyright 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
18#include <binder/Status.h>
19
20namespace android {
21namespace bluetooth {
22
Jakub Pawlowskif46a1592018-03-23 17:38:01 -070023const char PERMISSION_BLUETOOTH[] = "android.permission.BLUETOOTH";
Jakub Pawlowskid717e1a2017-11-03 18:56:58 -070024const char PERMISSION_BLUETOOTH_ADMIN[] = "android.permission.BLUETOOTH_ADMIN";
25const char PERMISSION_BLUETOOTH_PRIVILEGED[] =
26 "android.permission.BLUETOOTH_PRIVILEGED";
27
28extern uid_t foregroundUserId;
29extern uid_t systemUiUid;
30
31android::binder::Status checkPermission(const char* permission);
32bool isCallerActiveUser();
33bool isCallerActiveUserOrManagedProfile();
34
35} // namespace bluetooth
36} // namespace android
37
38#define ENFORCE_PERMISSION(permission) \
39 { \
40 android::binder::Status status = \
41 android::bluetooth::checkPermission((permission)); \
42 if (!status.isOk()) { \
43 return status; \
44 } \
45 }