1{ 2 "methods": { 3 "__constructor__(android.content.Context,com.android.internal.app.IAppOpsService)": { 4 "isImplementation": true, 5 "modifiers": [ 6 "protected" 7 ], 8 "params": [ 9 "context", 10 "service" 11 ], 12 "returnType": "void", 13 "exceptions": [], 14 "minSdk": 19, 15 "name": "__constructor__(android.content.Context,com.android.internal.app.IAppOpsService)" 16 }, 17 "checkOpNoThrow(int,int,java.lang.String)": { 18 "isImplementation": true, 19 "modifiers": [ 20 "public" 21 ], 22 "params": [ 23 "op", 24 "uid", 25 "packageName" 26 ], 27 "returnType": "int", 28 "exceptions": [], 29 "minSdk": 19, 30 "name": "checkOpNoThrow(int,int,java.lang.String)", 31 "documentation": "Like {@link AppOpsManager#checkOp} but instead of throwing a {@link SecurityException} it\nreturns {@link AppOpsManager#MODE_ERRORED}.\n\n\u003cp\u003eMade public for testing {@link #setMode} as the method is {@coe @hide}.\n" 32 }, 33 "checkOpNoThrow(java.lang.String,int,java.lang.String)": { 34 "isImplementation": true, 35 "modifiers": [ 36 "protected" 37 ], 38 "params": [ 39 "op", 40 "uid", 41 "packageName" 42 ], 43 "returnType": "int", 44 "exceptions": [], 45 "minSdk": 28, 46 "name": "checkOpNoThrow(java.lang.String,int,java.lang.String)" 47 }, 48 "checkPackage(int,java.lang.String)": { 49 "isImplementation": true, 50 "modifiers": [ 51 "protected" 52 ], 53 "params": [ 54 "uid", 55 "packageName" 56 ], 57 "returnType": "void", 58 "exceptions": [], 59 "minSdk": 19, 60 "name": "checkPackage(int,java.lang.String)" 61 }, 62 "getAudioRestrictionKey(int,int)": { 63 "isImplementation": false, 64 "modifiers": [ 65 "private", 66 "static" 67 ], 68 "params": [ 69 "code", 70 "usage" 71 ], 72 "returnType": "int", 73 "exceptions": [], 74 "name": "getAudioRestrictionKey(int,int)" 75 }, 76 "getInternalKey(int,java.lang.String)": { 77 "isImplementation": false, 78 "modifiers": [ 79 "private", 80 "static" 81 ], 82 "params": [ 83 "uid", 84 "packageName" 85 ], 86 "returnType": "java.lang.String", 87 "exceptions": [], 88 "name": "getInternalKey(int,java.lang.String)" 89 }, 90 "getListenerKey(int,java.lang.String)": { 91 "isImplementation": false, 92 "modifiers": [ 93 "private", 94 "static" 95 ], 96 "params": [ 97 "op", 98 "packageName" 99 ], 100 "returnType": "java.lang.String", 101 "exceptions": [], 102 "name": "getListenerKey(int,java.lang.String)" 103 }, 104 "getOpMapKey(int,java.lang.String,int)": { 105 "isImplementation": false, 106 "modifiers": [ 107 "private", 108 "static" 109 ], 110 "params": [ 111 "uid", 112 "packageName", 113 "opInt" 114 ], 115 "returnType": "java.lang.String", 116 "exceptions": [], 117 "name": "getOpMapKey(int,java.lang.String,int)" 118 }, 119 "getOpsForPackage(int,java.lang.String,int[])": { 120 "isImplementation": true, 121 "modifiers": [ 122 "public" 123 ], 124 "params": [ 125 "uid", 126 "packageName", 127 "ops" 128 ], 129 "returnType": "java.util.List\u003candroid.app.AppOpsManager.PackageOps\u003e", 130 "exceptions": [], 131 "minSdk": 19, 132 "name": "getOpsForPackage(int,java.lang.String,int[])" 133 }, 134 "getRestriction(int,int)": { 135 "isImplementation": false, 136 "modifiers": [ 137 "public" 138 ], 139 "params": [ 140 "code", 141 "usage" 142 ], 143 "returnType": "org.robolectric.shadows.ShadowAppOpsManager.ModeAndException", 144 "exceptions": [], 145 "name": "getRestriction(int,int)" 146 }, 147 "noteOp(int,int,java.lang.String)": { 148 "isImplementation": true, 149 "modifiers": [ 150 "public" 151 ], 152 "params": [ 153 "op", 154 "uid", 155 "packageName" 156 ], 157 "returnType": "int", 158 "exceptions": [], 159 "minSdk": 19, 160 "maxSdk": 29, 161 "name": "noteOp(int,int,java.lang.String)" 162 }, 163 "noteOp(int,int,java.lang.String,java.lang.String)": { 164 "isImplementation": true, 165 "modifiers": [ 166 "public" 167 ], 168 "params": [ 169 "op", 170 "uid", 171 "packageName", 172 "message" 173 ], 174 "returnType": "int", 175 "exceptions": [], 176 "minSdk": 30, 177 "name": "noteOp(int,int,java.lang.String,java.lang.String)" 178 }, 179 "noteProxyOpNoThrow(int,java.lang.String)": { 180 "isImplementation": true, 181 "modifiers": [ 182 "protected" 183 ], 184 "params": [ 185 "op", 186 "proxiedPackageName" 187 ], 188 "returnType": "int", 189 "exceptions": [], 190 "minSdk": 23, 191 "maxSdk": 29, 192 "name": "noteProxyOpNoThrow(int,java.lang.String)" 193 }, 194 "noteProxyOpNoThrow(int,java.lang.String,int,java.lang.String,java.lang.String)": { 195 "isImplementation": true, 196 "modifiers": [ 197 "protected" 198 ], 199 "params": [ 200 "op", 201 "proxiedPackageName", 202 "proxiedUid", 203 "featureId", 204 "message" 205 ], 206 "returnType": "int", 207 "exceptions": [], 208 "minSdk": 30, 209 "name": "noteProxyOpNoThrow(int,java.lang.String,int,java.lang.String,java.lang.String)" 210 }, 211 "setMode(int,int,java.lang.String,int)": { 212 "isImplementation": true, 213 "modifiers": [ 214 "public" 215 ], 216 "params": [ 217 "op", 218 "uid", 219 "packageName", 220 "mode" 221 ], 222 "returnType": "void", 223 "exceptions": [], 224 "minSdk": 19, 225 "name": "setMode(int,int,java.lang.String,int)", 226 "documentation": "Int version of {@link #setMode(String, int, String, int)}.\n\n\u003cp\u003eThis method is public for testing {@link #checkOpNoThrow}. If {@link #checkOpNoThrow} is *\ncalled afterwards with the {@code op}, {@code ui}, and {@code packageName} provided, it will *\nreturn the {@code mode} set here.\n" 227 }, 228 "setMode(java.lang.String,int,java.lang.String,int)": { 229 "isImplementation": true, 230 "modifiers": [ 231 "public" 232 ], 233 "params": [ 234 "op", 235 "uid", 236 "packageName", 237 "mode" 238 ], 239 "returnType": "void", 240 "exceptions": [], 241 "minSdk": 28, 242 "name": "setMode(java.lang.String,int,java.lang.String,int)", 243 "documentation": "Change the operating mode for the given op in the given app package. You must pass in both the\nuid and name of the application whose mode is being modified; if these do not match, the\nmodification will not be applied.\n\n\u003cp\u003eThis method is public for testing {@link #checkOpNoThrow}. If {@link #checkOpNoThrow} is\ncalled afterwards with the {@code op}, {@code ui}, and {@code packageName} provided, it will\nreturn the {@code mode} set here.\n\n@param op The operation to modify. One of the OPSTR_* constants.\n@param uid The user id of the application whose mode will be changed.\n@param packageName The name of the application package name whose mode will be changed.\n" 244 }, 245 "setRestriction(int,int,int,java.lang.String[])": { 246 "isImplementation": true, 247 "modifiers": [ 248 "public" 249 ], 250 "params": [ 251 "code", 252 "usage", 253 "mode", 254 "exceptionPackages" 255 ], 256 "returnType": "void", 257 "exceptions": [], 258 "minSdk": 21, 259 "name": "setRestriction(int,int,int,java.lang.String[])", 260 "documentation": "Sets audio restrictions.\n\n\u003cp\u003eThis method is public for testing, as the original method is {@code @hide}.\n" 261 }, 262 "startWatchingMode(int,java.lang.String,android.app.AppOpsManager.OnOpChangedListener)": { 263 "isImplementation": true, 264 "modifiers": [ 265 "protected" 266 ], 267 "params": [ 268 "op", 269 "packageName", 270 "callback" 271 ], 272 "returnType": "void", 273 "exceptions": [], 274 "minSdk": 19, 275 "name": "startWatchingMode(int,java.lang.String,android.app.AppOpsManager.OnOpChangedListener)" 276 }, 277 "stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener)": { 278 "isImplementation": true, 279 "modifiers": [ 280 "protected" 281 ], 282 "params": [ 283 "callback" 284 ], 285 "returnType": "void", 286 "exceptions": [], 287 "minSdk": 19, 288 "name": "stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener)" 289 }, 290 "toOpEntry(java.lang.Integer)": { 291 "isImplementation": false, 292 "modifiers": [ 293 "private", 294 "static" 295 ], 296 "params": [ 297 "op" 298 ], 299 "returnType": "android.app.AppOpsManager.OpEntry", 300 "exceptions": [], 301 "name": "toOpEntry(java.lang.Integer)" 302 }, 303 "unsafeCheckOpNoThrow(java.lang.String,int,java.lang.String)": { 304 "isImplementation": true, 305 "modifiers": [ 306 "public" 307 ], 308 "params": [ 309 "op", 310 "uid", 311 "packageName" 312 ], 313 "returnType": "int", 314 "exceptions": [], 315 "minSdk": 29, 316 "name": "unsafeCheckOpNoThrow(java.lang.String,int,java.lang.String)" 317 }, 318 "unsafeCheckOpRawNoThrow(int,int,java.lang.String)": { 319 "isImplementation": true, 320 "modifiers": [ 321 "protected" 322 ], 323 "params": [ 324 "op", 325 "uid", 326 "packageName" 327 ], 328 "returnType": "int", 329 "exceptions": [], 330 "minSdk": 29, 331 "name": "unsafeCheckOpRawNoThrow(int,int,java.lang.String)", 332 "documentation": "Returns the \u003cem\u003eraw\u003c/em\u003e mode associated with the op.\nDoes not throw a security exception, does not translate {@link AppOpsManager#MODE_FOREGROUND}.\n" 333 }, 334 "unsafeCheckOpRawNoThrow(java.lang.String,int,java.lang.String)": { 335 "isImplementation": true, 336 "modifiers": [ 337 "protected" 338 ], 339 "params": [ 340 "op", 341 "uid", 342 "packageName" 343 ], 344 "returnType": "int", 345 "exceptions": [], 346 "minSdk": 29, 347 "name": "unsafeCheckOpRawNoThrow(java.lang.String,int,java.lang.String)", 348 "documentation": "Like {@link #unsafeCheckOpNoThrow(String, int, String)} but returns the \u003cem\u003eraw\u003c/em\u003e mode\nassociated with the op. Does not throw a security exception, does not translate {@link\nAppOpsManager#MODE_FOREGROUND}.\n" 349 } 350 }, 351 "imports": [ 352 "android.os.Build.VERSION_CODES.KITKAT", 353 "android.os.Build.VERSION_CODES.LOLLIPOP", 354 "android.os.Build.VERSION_CODES.M", 355 "android.os.Build.VERSION_CODES.P", 356 "android.os.Build.VERSION_CODES.Q", 357 "android.os.Build.VERSION_CODES.R", 358 "org.robolectric.shadow.api.Shadow.invokeConstructor", 359 "android.annotation.Nullable", 360 "android.annotation.RequiresPermission", 361 "android.annotation.SystemApi", 362 "android.app.AppOpsManager", 363 "android.app.AppOpsManager.AttributedOpEntry", 364 "android.app.AppOpsManager.OnOpChangedListener", 365 "android.app.AppOpsManager.OpEntry", 366 "android.app.AppOpsManager.PackageOps", 367 "android.content.Context", 368 "android.content.pm.PackageManager.NameNotFoundException", 369 "android.media.AudioAttributes.AttributeUsage", 370 "android.os.Binder", 371 "android.os.Build", 372 "android.util.LongSparseArray", 373 "android.util.LongSparseLongArray", 374 "com.android.internal.app.IAppOpsService", 375 "com.google.common.collect.BiMap", 376 "com.google.common.collect.HashBiMap", 377 "com.google.common.collect.HashMultimap", 378 "com.google.common.collect.ImmutableList", 379 "com.google.common.collect.Multimap", 380 "java.util.ArrayList", 381 "java.util.Arrays", 382 "java.util.Collections", 383 "java.util.HashMap", 384 "java.util.HashSet", 385 "java.util.List", 386 "java.util.Map", 387 "java.util.Objects", 388 "java.util.Set", 389 "org.robolectric.RuntimeEnvironment", 390 "org.robolectric.annotation.HiddenApi", 391 "org.robolectric.annotation.Implementation", 392 "org.robolectric.annotation.Implements", 393 "org.robolectric.annotation.RealObject", 394 "org.robolectric.shadow.api.Shadow", 395 "org.robolectric.util.ReflectionHelpers", 396 "org.robolectric.util.ReflectionHelpers.ClassParameter", 397 "org.robolectric.shadows.ShadowAppOpsManager.ModeAndException" 398 ], 399 "name": "org.robolectric.shadows.ShadowAppOpsManager" 400}