C’è un modo per chiedere il permesso a livello di programmazione?

C’è un modo per chiedere il permesso a livello di programmazione in Android? Non voglio aggiungere tutte le autorizzazioni a AndroidManifest.xml. Quindi c’è qualche finestra di dialogo che richiede il permesso in fase di runtime?

No. L’utente deve essere informato delle autorizzazioni durante l’installazione dell’applicazione. Chiedere all’utente in fase di esecuzione sarebbe un rischio per la sicurezza.

Le applicazioni dichiarano staticamente le autorizzazioni che richiedono e il sistema Android richiede all’utente il consenso al momento dell’installazione dell’applicazione. Android non ha meccanismi per concedere le autorizzazioni dynamicmente (in fase di esecuzione) perché complica l’esperienza dell’utente a scapito della sicurezza.

  • Sito per sviluppatori Android – Autorizzazioni di sistema

Non fino ad ora, ma si.

Secondo il nuovo modello di authorization di Google introdotto in Android M :

Se un’app in esecuzione su M Preview supporta il nuovo modello di autorizzazioni, l’utente non deve concedere autorizzazioni quando installano o aggiornano l’app. Invece, l’app richiede le autorizzazioni nel momento in cui ne ha bisogno e il sistema mostra una finestra di dialogo all’utente che chiede l’authorization.

Ecco un riepilogo dei componenti chiave di questo nuovo modello:

  • Dichiarazione delle autorizzazioni: l’app dichiara tutte le autorizzazioni necessarie nel manifest, come nelle precedenti piattaforms Android.

  • Gruppi di autorizzazioni: le autorizzazioni sono suddivise in gruppi di autorizzazioni, in base alla loro funzionalità. Ad esempio, il gruppo di autorizzazioni CONTACTS contiene le autorizzazioni per leggere e scrivere i contatti dell’utente e le informazioni del profilo.

  • Autorizzazioni limitate concesse al momento dell’installazione: quando l’utente installa o aggiorna l’app, il sistema concede all’app tutte le autorizzazioni elencate nel manifest che rientrano in PROTECTION_NORMAL . Ad esempio, le autorizzazioni di sveglia e Internet rientrano in PROTECTION_NORMAL , quindi vengono concesse automaticamente al momento dell’installazione. Per ulteriori informazioni su come vengono gestite le normali autorizzazioni, vedere Autorizzazioni normali. Il sistema può anche concedere le autorizzazioni di firma dell’app, come descritto in Componenti di sistema e autorizzazioni di firma. All’utente non viene richiesto di concedere alcuna authorization al momento dell’installazione.
  • Concessione di autorizzazioni all’utente in fase di esecuzione: quando l’app richiede un’authorization, il sistema visualizza una finestra di dialogo per l’utente, quindi chiama la funzione di richiamata dell’app per notificare se l’utente ha concesso l’authorization. Questo modello di authorization modifica il modo in cui la tua app si comporta per le funzionalità che richiedono autorizzazioni. Ecco un riepilogo delle pratiche di sviluppo che dovresti seguire per adattarti a questo modello:

  • Verifica sempre le autorizzazioni: quando l’app deve eseguire un’azione che richiede un’authorization, è necessario innanzitutto verificare se dispone già di tale authorization. In caso contrario, richiede di ottenere tale authorization. Non è necessario verificare le autorizzazioni che rientrano in PROTECTION_NORMAL .

  • Gestire la mancanza di autorizzazioni con garbo: se all’app non viene concessa un’authorization appropriata, è necessario gestirne l’errore in modo pulito. Ad esempio, se l’authorization è necessaria solo per una funzione aggiunta, l’app può disabilitare tale funzione. Se l’authorization è essenziale per il funzionamento dell’app, l’app potrebbe disabilitare tutte le sue funzionalità e informare l’utente che è necessario concedere tale authorization.

  • Le autorizzazioni sono revocabili: gli utenti possono revocare le autorizzazioni di un’app in qualsiasi momento. Se un utente distriggers le autorizzazioni di un’app, l’app non viene notificata. Ancora una volta, la tua app dovrebbe verificare di aver bisogno delle autorizzazioni prima di eseguire qualsiasi azione limitata.

Fonte: https://developer.android.com/preview/features/runtime-permissions.html

No.

Rispondi qui: ottieni il permesso di Android dynamicmente

Vedere la sezione “Autorizzazioni di utilizzo” qui: http://developer.android.com/guide/topics/security/security.html

Android M ha introdotto le autorizzazioni di runtime, che tutti stavano aspettando. Inoltre, le autorizzazioni sono ora classificate in NORMAL e DANGEROUS, dove le autorizzazioni NORMAL sono concesse per impostazione predefinita e le autorizzazioni DANGEROUS vengono richieste quando sono necessarie. Anche le autorizzazioni PERICOLOSE possono essere revocate dall’utente in qualsiasi momento dal menu Impostazioni del dispositivo.

Se combino le risposte di “Piskvor” e di “Hanno Binder”, la tua app può controllare se l’app helper è disponibile (prova a richiamarla con un Intent), e se non c’è (l’invocazione fallisce), richiama il utente per installarlo.

Guarda il seguente, per esempio.

come scaricare adobe reader programmaticamente se non esiste