Il profilo con restrizioni è ora disponibile in Android dalla 4.3, ho appreso che alcune app come fotocamera, gmail ecc non sono disponibili in questo tipo di profili. Come posso gestire questo tipo di condizioni nella mia app? Inoltre, come gestire i prodotti dell'app e le impostazioni del profilo limitato in corrispondenza della mia app?Come gestire i profili con restrizioni nell'app Android?
risposta
L'interfaccia utente per gli utenti per controllare le restrizioni che hai creato è gestita dall'applicazione Impostazioni del sistema. Per rendere le impostazioni di restrizione dell'app visualizzate all'utente, devi dichiarare le restrizioni fornite dall'app creando un BroadcastReceiver
che riceve l'intento ACTION_GET_RESTRICTION_ENTRIES
. Il sistema richiama questo intento per interrogare tutte le app per le restrizioni disponibili, quindi crea l'interfaccia utente per consentire all'utente principale di gestire le restrizioni per ciascun profilo limitato.
Per maggiori informazioni un'occhiata a http://developer.android.com/about/versions/android-4.3.html#RestrictedProfiles
Grazie user370305 anche se ho già visitato
http://developer.android.com/about/versions/android-4.3.html#RestrictedProfiles
Vorrei migliorarlo dal di riferimento con
https://www.youtube.com/watch?v=pdUcANNm72o
profili con limitazioni sono una nuova funzionalità introdotta in Android Jell y Bean 4.3 che consente agli utenti delle applicazioni di migliorare il controllo durante la condivisione del tablet.
Questi profili limitati condividono app, account google dell'account utente principale ma in modo limitato. Non possono accedere a gmail, play store, calendario ecc. L'utente principale può selezionare le restrizioni per ciascuna applicazione.
UserManager Class è esteso per la gestione di queste restrizioni
UserManager.getUserRestrictions restituisce il restrizioni dell'accesso degli utenti a livello imposti a un utente specifico
UserManager.getApplicationRestrictions restituisce un bundle contenente salvati restrizioni dell'applicazione per questo utente, per il nome del pacchetto . Solo un'applicazione con questo nome di pacchetto può chiamare questo metodo.
Se avete bisogno di impostazioni specifiche utilizzano questo filtro intento
<receiver android:name="GetRestrictionsReceiver">
<intent-filter>
<action android:name="android.intent.action.GET_RESTRICTION_ENTRIES "/>
</intent-filter>
</receiver>
ora implementare ricevitore di broadcast con elenco restrizione voce restituita come questo
public class GetRestrictionsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
final PendingResult result=goAsync();
new Thread(){
public void run(){
final Bundle extras=new Bundle();
ArrayList<RestrictionEntry> newEntries = initRestricions(context);
extras.putParcelableArrayList(Intent.EXTRA_RESTRICTIONS_LIST, newEntries);
result.setResult(Activity.RESULT_OK, null, extras);
result.finish();
}
}.start();
}
}
Qualsiasi applicazione che sceglie di esporre tale le restrizioni lo fanno implementando un ricevitore che gestisce l'azione ACTION_GET_RESTRICTION_ENTRIES. Il ricevitore restituisce quindi un pacchetto di risultati che contiene una voce denominata "restrizioni", il cui valore è un oggetto ArrayList.
Ci sono 3 tipi di restrizione Entrata
- booleano
- Single Choice
- scelta multipla
È possibile utilizzare diversi metodi di RestrictionEntry per impostare e ottenere diversi tipi di restrizioni.
per ottenere l'accesso a un account da un profilo limitato, è necessario aggiungere l'attributo android: restrictedAccountType al tag:
<application ...
android:restrictedAccountType="com.example.account.type" >
è possibile utilizzare la sezione seguente codice per rilevare se la vostra applicazione è in esecuzione in profilo con limitazioni modalità !!
import android.content.pm.UserInfo;
import android.os.UserHandle;
import android.os.UserManager;
public static boolean isRestrictedProfileInEffect(Context context) {
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
UserInfo restrictedUserInfo = null;
for (UserInfo userInfo : userManager.getUsers()) {
if (userInfo.isRestricted()) {
restrictedUserInfo = userInfo;
}
}
boolean isOwner = UserHandle.myUserId() == UserHandle.USER_OWNER;
boolean isRestrictedProfileOn = restrictedUserInfo != null && !isOwner;
return isRestrictedProfileOn;
}
- 1. Come posso gestire i profili usando SimpleMembership?
- 2. Trova tipo f con restrizioni
- 3. Come specificare un'applicazione.yml esterna in primavera con i profili
- 4. Utilizzare restrizioni con gli array?
- 5. Come specificare i profili attivi in Maven3
- 6. OpenCV - Come gestisce i profili colore?
- 7. Cambia i profili Android a livello di programmazione
- 8. profili utente differenti con django-profili e django-registrazione
- 9. Utilizzare correttamente i profili di ambiente Spring per gestire PropertySourcesPlaceholderConfigurer e set di file di proprietà
- 10. Come gestire una mappa con i puntatori?
- 11. Android OkHttp come gestire ETag
- 12. Android - Come gestire correttamente i metodi onPause/onResume?
- 13. Definire i profili Maven fuori POM
- 14. Come gestire i campi JSON opzionali in Retrofit per Android?
- 15. Come gestire i riferimenti circolari?
- 16. Profili opencv: Come eliminare i contorni piccoli in un'immagine binaria
- 17. Come gestire i progetti personali
- 18. Mimando i profili Spring in Guice
- 19. Git - come gestire i symlink
- 20. Restrizioni stringa preservazione Regex
- 21. CSV restrizioni prima cella
- 22. Come configurare i profili di pubblicazione per l'autenticazione NTLM
- 23. UIGestureRimascie restrizioni movimenti
- 24. Android: come gestire il clic del pulsante
- 25. restrizioni di tipo unboxed
- 26. Come gestire EditText Cambia listener in android
- 27. Usando nHibernate, come posso leggere senza restrizioni?
- 28. Android - Come gestire due tocco delle dita
- 29. restrizioni di accesso in Eclipse
- 30. Versione profili ASP.NET?
+1 panoramica molto utile! – rekire
Assicurati di utilizzare GET_RESTRICTION_ENTRIES anziché GET_RESTRICTIONS_ENTRIES perché ho appena perso ore su questo. – RuAware
@RuAware Grazie per la correzione –