In sintesi da this risposta, e guardando le fonti di UserHandle.java vediamo il significato della quadro utente iD.
# | @UserIdInt | Value | Status | Description |
# | --------------------- | ------ | ---------- | ------------|
# | USER_OWNER | 0 | deprecated | "owner" user of the device
# | USER_SYSTEM | 0 | ok | "system" user of the device
# | USER_ALL | -1 | ok | ALL users on the device
| USER_CURRENT | -2 | ok | the currently active user
# | USER_CURRENT_OR_SELF | -3 | ok | id from which we would like to send to the current user
# | USER_NULL | -10000 | ok | An undefined user id
Quindi, per capire che cosa significa android:protectionLevel="signature"
, dovrete leggere la pagina su permission-element. Che si riassume nella tabella:

Così che cosa dovete fare nel tuo AndroidManifest.xml
dipende molto da quello API è necessario supportare, come più alto> 23 API richiedono anche un android:permissionGroup=
definition, per non normali ("pericolosi") i permessi ...
anche bene sapere (da @CommonsWare)
per essere in grado di tenere INTERACT_ACROSS_USERS
, la vostra applicazione deve essere firmato tramite la chiave di firma del firmware o deve essere installato sulla partizione di sistema.
Per poter contenere INTERACT_ACROSS_USERS_FULL
, l'app deve essere firmata dalla chiave di firma del firmware.
@offset Hai mai funzionato? – not2qubit
@ user1147688 Non ricordo ... – offset