# AppOpsManager.OnOpChangedListener

Added in[API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# AppOpsManager.OnOpChangedListener

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/app/AppOpsManager.OnOpChangedListener "View this page in Kotlin")\|Java

`
public
static


interface
AppOpsManager.OnOpChangedListener
`  
`


`

|-----------------------------------------------|
| android.app.AppOpsManager.OnOpChangedListener |

<br />

*** ** * ** ***

Callback for notification of changes to operation state.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                ### Public methods                                                                                                                                                                                                                                                                                                                                                                 ||
|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[onOpChanged](https://developer.android.com/reference/android/app/AppOpsManager.OnOpChangedListener#onOpChanged(java.lang.String,%20java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` op, `[String](https://developer.android.com/reference/java/lang/String)` packageName) `                                                                                                                                                                                                                                                                                                                                                                                                         |
| ` default void`  | ` `[onOpChanged](https://developer.android.com/reference/android/app/AppOpsManager.OnOpChangedListener#onOpChanged(java.lang.String,%20java.lang.String,%20int,%20java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` op, `[String](https://developer.android.com/reference/java/lang/String)` packageName, int userId, `[String](https://developer.android.com/reference/java/lang/String)` persistentDeviceId) ` Similar to[onOpChanged(java.lang.String, java.lang.String)](https://developer.android.com/reference/android/app/AppOpsManager.OnOpChangedListener#onOpChanged(java.lang.String,%20java.lang.String))but includes user and the device for which the op mode has changed. |

## Public methods

### onOpChanged

Added in[API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract void onOpChanged (String op, 
                String packageName)
```

<br />

<br />

|           Parameters           ||
|---------------|-----------------|
| `op`          | `String` <br /> |
| `packageName` | `String` <br /> |

### onOpChanged

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void onOpChanged (String op, 
                String packageName, 
                int userId, 
                String persistentDeviceId)
```

Similar to[onOpChanged(java.lang.String, java.lang.String)](https://developer.android.com/reference/android/app/AppOpsManager.OnOpChangedListener#onOpChanged(java.lang.String,%20java.lang.String))but includes user and the device for which the op mode has changed.

Implement this method if callbacks are required on all devices. If not implemented explicitly, the default implementation will notify for op changes on the default device only.

If implemented,[onOpChanged(java.lang.String, java.lang.String)](https://developer.android.com/reference/android/app/AppOpsManager.OnOpChangedListener#onOpChanged(java.lang.String,%20java.lang.String))will not be called automatically.

<br />

|                                                                                                                                Parameters                                                                                                                                 ||
|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `op`                 | `String`: The Op that changed. This value cannot be`null`. <br />                                                                                                                                                                                   |
| `packageName`        | `String`: Package of the app whose Op changed. Can be empty in the case of a change which is not package specific (such as global restrictions) which may imply a change to the op or package being listened to. This value cannot be`null`. <br /> |
| `userId`             | `int`: User id of the app whose Op changed. <br />                                                                                                                                                                                                  |
| `persistentDeviceId` | `String`: persistent device id whose Op changed. This value cannot be`null`. <br />                                                                                                                                                                 |