O sistema de permissão padrão descrito até agora não é suficiente quando usado com provedores de conteúdo. Um provedor de conteúdo pode querer se proteger com permissões de leitura e gravação, enquanto clientes diretos também precisam usar URIs específicos e outros aplicativos para que possam operar.
Um exemplo típico são os anexos em um app de emails. O acesso aos e-mails precisa ser protegido por permissões, já que os dados do usuário são confidenciais. No entanto, se um URI para um anexo de imagem for concedido a um visualizador de imagens, esse visualizador não terá mais a permissão para abrir o anexo, porque não há motivo para reter uma permissão para acessar todos os e-mails.
A solução para esse problema são permissões por URI: ao iniciar uma atividade ou retornar um resultado para uma atividade, o autor da chamada pode definir Intent.FLAG_GRANT_READ_URI_PERMISSION e/ou Intent.FLAG_GRANT_WRITE_URI_PERMISSION. Isso concede à permissão de atividade recebida o acesso ao URI de dados específicos no intent, independentemente se ele tem ou não a permissão para acessar os dados no provedor de conteúdo correspondente ao intent.