1 /* 2 * Copyright (C) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef TELEPHONY_PERMISSION_H 17 #define TELEPHONY_PERMISSION_H 18 19 #include <string> 20 21 namespace OHOS { 22 namespace Telephony { 23 namespace Permission { 24 /** 25 * This permission indicates being allowed to place an outgoing call. 26 */ 27 static constexpr const char *PLACE_CALL = "ohos.permission.PLACE_CALL"; 28 /** 29 * This permission indicates being allowed to answer an incoming call. 30 */ 31 static constexpr const char *ANSWER_CALL = "ohos.permission.ANSWER_CALL"; 32 /** 33 * This permission indicates being allowed to write user's call log data. 34 */ 35 static constexpr const char *WRITE_CALL_LOG = "ohos.permission.WRITE_CALL_LOG"; 36 /** 37 * This permission indicates being allowed to read user's call log data. 38 */ 39 static constexpr const char *READ_CALL_LOG = "ohos.permission.READ_CALL_LOG"; 40 /** 41 * This permission indicates being allowed to write user's calendar data. 42 */ 43 static constexpr const char *WRITE_CALENDAR = "ohos.permission.WRITE_CALENDAR"; 44 /** 45 * This permission indicates being allowed to read cell messages. 46 */ 47 static constexpr const char *READ_CELL_MESSAGES = "ohos.permission.READ_CELL_MESSAGES"; 48 /** 49 * This permission indicates being allowed to write user's contacts data. 50 */ 51 static constexpr const char *WRITE_CONTACTS = "ohos.permission.WRITE_CONTACTS"; 52 /** 53 * This permission indicates being allowed to read user's contacts data. 54 */ 55 static constexpr const char *READ_CONTACTS = "ohos.permission.READ_CONTACTS"; 56 /** 57 * This permission indicates being allowed to set state of telephony. 58 */ 59 static constexpr const char *SET_TELEPHONY_STATE = "ohos.permission.SET_TELEPHONY_STATE"; 60 /** 61 * This permission indicates being allowed to get state of telephony. 62 */ 63 static constexpr const char *GET_TELEPHONY_STATE = "ohos.permission.GET_TELEPHONY_STATE"; 64 /** 65 * This permission indicates being allowed to get MSISDN of SIM card. 66 */ 67 static constexpr const char *GET_PHONE_NUMBERS = "ohos.permission.GET_PHONE_NUMBERS"; 68 /** 69 * This permission indicates being allowed to set information about network. 70 */ 71 static constexpr const char *SET_NETWORK_INFO = "ohos.permission.SET_NETWORK_INFO"; 72 /** 73 * This permission indicates being allowed to get information about network. 74 */ 75 static constexpr const char *GET_NETWORK_INFO = "ohos.permission.GET_NETWORK_INFO"; 76 /** 77 * This permission indicates being allowed to access cell loaction. 78 */ 79 static constexpr const char *CELL_LOCATION = "ohos.permission.LOCATION"; 80 /** 81 * This permission indicates being allowed to read messages. 82 */ 83 static constexpr const char *READ_MESSAGES = "ohos.permission.READ_MESSAGES"; 84 /** 85 * This permission indicates being allowed to send messages. 86 */ 87 static constexpr const char *SEND_MESSAGES = "ohos.permission.SEND_MESSAGES"; 88 /** 89 * This permission indicates being allowed to receive sms messages. 90 */ 91 static constexpr const char *RECEIVE_MESSAGES = "ohos.permission.RECEIVE_SMS"; 92 /** 93 * This permission indicates being allowed to connect cellular call service. 94 */ 95 static constexpr const char *CONNECT_CELLULAR_CALL_SERVICE = "ohos.permission.CONNECT_CELLULAR_CALL_SERVICE"; 96 /** 97 * This permission indicates being allowed to connect IMS service. 98 */ 99 static constexpr const char *CONNECT_IMS_SERVICE = "ohos.permission.CONNECT_IMS_SERVICE"; 100 /** 101 * This permission indicates being allowed to receive mms. 102 */ 103 static constexpr const char *RECEIVE_MMS = "ohos.permission.RECEIVE_MMS"; 104 } // namespace Permission 105 106 class TelephonyPermission { 107 public: 108 /** 109 * @brief Permission check by callingUid. 110 * 111 * @param permissionName permission name. 112 * @return Return {@code true} on success, {@code false} on failure. 113 */ 114 static bool CheckPermission(const std::string &permissionName); 115 116 /** 117 * @brief Get bundleName by callingUid. 118 * 119 * @param callingUid. 120 * @param bundleName. 121 * @return Return {@code true} on success, {@code false} on failure. 122 */ 123 static bool GetBundleNameByUid(int32_t uid, std::string &bundleName); 124 125 /** 126 * @brief Check if the caller is System App. 127 * 128 * @return Return {@code true} if the caller is System App, return {@code false} otherwise. 129 */ 130 static bool CheckCallerIsSystemApp(); 131 }; 132 } // namespace Telephony 133 } // namespace OHOS 134 #endif // TELEPHONY_PERMISSION_H 135