Como abrir programaticamente a Tela de permissão para um aplicativo específico no Android Marshmallow?
Tenho uma pergunta sobre o novo lançamento do Android Marshmallow:
É possível exibir a tela de permissão para um aplicativo específico por meio de um Intent ou algo semelhante?
É possível exibir as configurações do aplicativo com o seguinte código - existe uma solução analógica para abrir diretamente a tela de permissão?
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
Eu já fiz alguma pesquisa sobre isso, mas não consegui encontrar uma solução adequada - eu agradeceria toda ajuda!
— Frederik Schweiger
Tente isso, pode ser trabalho stackoverflow.com/a/41221852/5488468
— Bipin Bharti 1 /
verificar este Open Screen Configurações de aplicativos Android
De acordo com o vídeo oficial de permissões do Marshmallow (na marca dos 4m 43s ), você deve abrir a página Configurações do aplicativo (a partir daí há um clique na página Permissões).
Para abrir a página de configurações, você faria
Ele está redirecionando para detalhes gerais da tela do aplicativo. Como pode ir especificamente para a tela Permissões do aplicativo. Eu não quero que permanecer um clique também,
— Milind Mevada
@MilindMevada - você não pode fazer isso no momento.
você poderia enviar dados da atividade de configurações para sua atividade usando intenções, em "tempo real"? o problema que estou enfrentando é lidar com esses dados em sua atividade depois que eles são enviados pelas configurações.
— ThunderWiring
Isso funciona durante a depuração do aplicativo, mas falha sem motivo real após a assinatura do APK. Nada óbvio no logcat também.
Isso não é possível. Eu tentei fazer isso também. Eu poderia descobrir o nome do pacote e a atividade que será iniciada. Mas, no final, você receberá uma exceção de segurança devido à falta de permissão que não pode declarar.
Em relação à outra resposta, também recomendo abrir a tela de configurações do aplicativo. Eu faço isso com o seguinte código:
Como não quero ter isso na minha pilha de histórico, removo-o usando sinalizadores de intenção.
Eu experimentei o mesmo e pensei que poderia haver uma solução alternativa / outra solução para isso ...: - /
Não, infelizmente não é possível por design. Para mais informações, consulte esta discussão no Google+: goo.gl/Wqjjff
@Mulgard O Whatsapp deve estar usando targetSdk = "23". Isso permite que o aplicativo solicite ao usuário que habilite a permissão. Se o seu SDK de destino <23, poder mostrar ao usuário a tela de permissões do aplicativo é útil, parece que só podemos mostrar a tela de configurações gerais do aplicativo.
— Vman
Às vezes, o Intent.FLAG_ACTIVITY_NO_HISTORY pode causar uma situação problemática nos tablets quando um pop-up é exibido na tela de configurações, ele fecha a tela de configurações. Simplesmente remover esse sinalizador resolverá esse problema.
— Agitando 15/11
Você pode mostrar um Toast ao mesmo tempo instruindo o usuário a entrar em "Permissão" (boa idéia para localizar esta mensagem mesmo que o restante do seu aplicativo não esteja disponível no idioma do usuário)
— vgergo
Descrição Abre a página de configuração Detalhes para o aplicativo. A partir daqui, o usuário precisa atribuir manualmente a permissão desejada.
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Opcional . Se definido, abre a tela Configurações (atividade) como nova atividade. Caso contrário, ele será aberto na atividade em execução no momento.
Uri.fromParts("package", getPackageName(), null)
Prepara ou cria URI, enquanto getPackageName () - retorna o nome do seu pacote de aplicativos.
Não se esqueça de definir isso . Caso contrário, você receberá android.content.ActivityNotFoundException . Como você definiu sua intenção como Settings.ACTION_APPLICATION_DETAILS_SETTINGS e o Android espera que algum nome seja pesquisado.
— singhpradeep
É literalmente essa a resposta mais votada. Por que duplicar isso e não estender a resposta original ?!
— David Refoua 20/10/19
Em vez disso, você pode abrir as configurações gerais de aplicativos específicos com uma linha
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + BuildConfig.APPLICATION_ID)));
— dgngulcan
Você pode usar getActivity (). GetPackageName () para obter o nome do pacote, dependendo de como sua compilação está configurada.
— Cory Roy
Não é possível abrir programaticamente a tela de permissão. Em vez disso, podemos abrir a tela de configurações do aplicativo.
Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + BuildConfig.APPLICATION_ID));
— Vignes
Ele está solicitando a página de permissão
— Maveňň
Se você deseja escrever menos código, Kotlinpode fazer o seguinte:
fun Context.openAppSystemSettings() {
data = Uri.fromParts("package", packageName, null)
Baseado na resposta de Martin Konecny
bom uso de extensões Kotin
Estilo Kotlin.
startActivity(Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
Pode ser que isso ajude você
Se estamos a falar de Flyme OS (Meizu) SOMENTE há o seu próprio aplicativo de segurança com permissões.
Para abri-lo, use a seguinte intenção:
public static void openFlymeSecurityApp(Activity context) {
intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
De-causa BuildConfig é do seu aplicativo BuildConfig .
Xamarin Forms Android:
var intent = new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings,
Android.Net.Uri.Parse("package:" + Forms.Context.PackageName));
não é possível obter de forma pragmática a permissão ... mas sugerirei que você coloque essa linha de código em try {} catch {}, que faz com que seu aplicativo pare infelizmente ... e no corpo do catch, crie uma caixa de diálogo que navegará no tutorial pequeno do usuário para ativar a permissão de empate sobre outros aplicativos ... no botão sim, clique em colocar este código ...
Intent callSettingIntent= new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
startActivity(callSettingIntent);
essa intenção é abrir diretamente a lista de empate sobre outros aplicativos para gerenciar permissões e, a partir daqui, é um clique para empate sobre outros aplicativos Permissões ... eu sei que essa não é a resposta que você está procurando ... mas Estou fazendo isso nos meus aplicativos ...