詳細検索

Configure permissões para aplicativos Android

Avatar
por furuyamah
2 min de leitura
Tags

Configure permissões para aplicativos Android
Traduzido do 日本語 • Ver original
Se você usar um recurso que exige permissões que não estão definidas no manifesto, você receberá uma SecurityException implacável. 
É tão implacável que passa pela cláusula de pega. 

O fato dessa exceção ocorrer significa que o manifesto e o código não coincidem, então o código deve ser corrigido! 
Pode ser que você queira verificar permissões no seu código e no ramificação condicional. 
Por exemplo, publicar como biblioteca. 

Por isso, vamos te dar um método para obter uma lista de permissões e um método para verificar se as permissões que você procura existem no seu manifesto. 
[code lang="java" light="true"]
   /** 
     * Verifique se as permissões especificadas estão listadas no manifesto. 
     *  
     * @param verificarPermissão para investigar permissões
     * @param contexto
     * @return verdadeiro: listado / falso: não listado
     */ 
    boolean public hasPermission(String checkPermission, contexto de contexto) { 
        if (checkPermission == null || contexto == null) { 
            Casos em que nenhum argumento é apresentado
            retorne falso; 
        }
        String[] requestedPermissions = getPermissionList(context); 
        if (requestedPermissions == null) { 
            Quando nenhuma permissão é definida no manifesto
            retorne falso; 
        }
        for (String str : requestedPermissions) { 
            if (str.equals(checkPermission)) { 
                Casos em que havia permissão para investigar
                retorno verdadeiro; 
            }
        }
        Casos em que permissões para investigar não existiam
        retorne falso; 
    }

    /** 
     * Retorna uma lista de permissões listadas no manifesto. 
     *  
     * Lista de permissões @return
     */ 
    public String[] getPermissionList(Contexto contexto) { 
        PackageManager Gerenciador de pacotes = contexto.getPackageManager(); 
        PackageInfo packageInfo = null; 
        try { 
            packageInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); 
        } catch (NameNotFoundException e) { 
            return null; 
        }
        devolver encomendaInfo.solicitadoPermissões; 
    }
[/código]




Como funciona

[code lang="java" light="true"]
String checkPermisson = "android.permission.READ_PHONE_STATE"; 

if (hasPermission(checkPermisson, context)) { 
    Log.d("TAG", checkPermisson + " existem!"); 
} else { 
    Log.d("TAG", checkPermisson + " não existem!"); 
}
[/código]



Espero que isso ajude. 

Related Articles