Come aprire programmaticamente la schermata delle autorizzazioni per un'applicazione specifica su Android Marshmallow?

Ho una domanda in merito alla nuova versione Android Marshmallow:

È ansible visualizzare la schermata delle autorizzazioni per una specifica applicazione tramite un intento o qualcosa di simile?

  • Filtro dello schermo di luminosità
  • Locale Valuta Simbolo
  • Come utilizzare la notifica con il suono e la vibrazione?
  • android È ansible mettere un layout di vincoli all'interno di uno ScrollView
  • OnTouchListener non funziona con il layout relativo
  • Base64 caricato da Android / Java a RoR Carrierwave
  • Schermata di autorizzazione Android M

    È ansible visualizzare le impostazioni dell'applicazione con il seguente codice: esiste una soluzione analogica per aprire direttamente la schermata delle autorizzazioni?

    startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null))); 

    Ho già fatto alcune ricerche su questo ma non sono stato in grado di trovare una soluzione corretta – vorrei apprezzare each aiuto!

  • Android Marketplace: Modifica del pacchetto dell'applicazione
  • Come get il video di streaming di MJPG da android IPWebcam utilizzando opencv
  • JavaScript come controllare User Agent per Mobile / Tablet
  • Android: il servizio si arresta quando l'attività è chiusa
  • Come impostare il pollice a discesa programmabile in Android?
  • Come leggere tutti i byte insieme via Bluetooth?
  • 7 Solutions collect form web for “Come aprire programmaticamente la schermata delle autorizzazioni per un'applicazione specifica su Android Marshmallow?”

    Secondo il video ufficiale delle autorizzazioni Marshmallow (al marchio 4m 43s ), devi aprire la pagina delle impostazioni dell'applicazione (da qui è un clic alla pagina Autorizzazioni).

    Per aprire la pagina delle impostazioni, faresti

     Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); 

    Non è ansible. Ho anche cercato di farlo. Potrei scoprire il nome del pacchetto e l'attività che verrà avviata. Ma alla fine si otterrà un'exception di sicurezza a causa di una licenza mancante non è ansible dichiarare.

    AGGIORNARE:

    Per quanto riguarda l'altra risposta, consiglio anche di aprire la schermata delle impostazioni App. Lo faccio con il seguente codice:

      public static void startInstalledAppDetailsActivity(final Activity context) { if (context == null) { return; } final Intent i = new Intent(); i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); i.addCategory(Intent.CATEGORY_DEFAULT); i.setData(Uri.parse("package:" + context.getPackageName())); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); context.startActivity(i); } 

    Poiché non voglio averlo nella mia pila di storia, lo rimuovo usando bandiere intenti.

    Invece, puoi aprire le impostazioni generali di un'applicazione app con una sola row

      startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + BuildConfig.APPLICATION_ID))); 
     Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); 

    Descrizione

    Settings.ACTION_APPLICATION_DETAILS_SETTINGS
    Apre la pagina di impostazione Dettagli per App. Da qui l'utente deve assegnare manualmente l'authorization desiderata.

    Intent.FLAG_ACTIVITY_NEW_TASK
    Facoltativo . Se impostato, si apre la schermata Impostazioni (Attività) come nuova attività. Altrimenti, verrà aperta nell'attività attualmente in esecuzione.

    Uri.fromParts("package", getPackageName(), null)
    Preparare o creare URI, mentre getPackageName () restituisce il nome del pacchetto di applicazioni.

    intent.setData(uri)
    Non dimenticare di impostare questo . Altrimenti, otterrai android.content.ActivityNotFoundException . Poiché hai impostato l'intenzione come Settings.ACTION_APPLICATION_DETAILS_SETTINGS e android prevede che cercare un nome.

    non è ansible get pragmaticamente l'authorization … ma male ti suggeriamo di mettere quella linea di codice in try {} catch {} che rende l'applicazione purtroppo interrotta … e nel corpo di cattura crea una window di dialogo che navigerà utente a piccolo tutorial per abilitare l'estrazione su altre autorizzazioni di applicazioni … quindi su clic su clic su questo button mettere questo codice …

      Intent callSettingIntent= new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivity(callSettingIntent); 

    questo intento è quello di aprire direttamente l'elenco dei disegni su altre applicazioni per gestire le autorizzazioni e poi da qui è un click per disegnare su altre applicazioni Autorizzazioni … so che questa non è la risposta che stai cercando … ma Faccio questo nelle mie applicazioni …

    Ecco una piccola idea che simula quella schermata:

    https://gist.github.com/odedhb/9085d58d50b4c0aa15e3

    Può mostrare uno schermo simile utilizzando:

     PermissionsHelper.show() 

    È ansible con il metodo requestPermissions

    Anche se non è ansible visualizzare direttamente la pagina di impostazione, è ansible modificare le autorizzazioni di accesso.
    Un buon esempio:
    https://www.learn2crack.com/2015/10/android-marshmallow-permissions.html

    In questo modo puoi controllare e call

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 0); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.