Abrindo as configurações do Android de maneira programática

110

Como posso abrir as configurações de maneira programática?

Behnam
fonte

Respostas:

10

Usei o código da resposta mais votada :

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

Ele abre as configurações do dispositivo na mesma janela , assim, os usuários do meu aplicativo Android ( finnmglas / Launcher ) para Android ficam presos lá.

A resposta para 2020 e além (em Kotlin):

startActivity(Intent(Settings.ACTION_SETTINGS));

Funciona no meu aplicativo, também deve funcionar no seu, sem consequências indesejadas.

Finnmglas
fonte
4
2020 saúda você!
Behnam
Obrigado amigo, por favor atualize seu código assim: startActivity (new Intent (Settings.ACTION_SETTINGS));
Muhammad Ali
200

Você pode abrir com

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);

Você pode retornar pressionando o botão Voltar no dispositivo.

Kjurkovic
fonte
alguma maneira de voltar quando o usuário pressionou o botão Limpar Cache?
SweetWisher ツ
1
@SweetWisher ヅ Você só precisa editar o código-fonte.
Behnam
2
Agora você pode usar Intent intent = new Intent (android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity (intenção); Há um monte de constantes para cada categoria de configuração principal que você pode escolher. Basta escrever Configurações. e o Android Studio mostrará todas as categorias no preenchimento automático.
Asim Qasımzade
1
Posso pesquisar uma configuração específica no aplicativo Configurações e abrir essa configuração específica de forma programática no meu aplicativo? por exemplo, posso pesquisar OTG do meu aplicativo nas configurações do telefone?
Divya Gupta
Parece-me que usar StartActivity é o suficiente, sempre consigo obter o resultado CANCELD ao voltar ao App (o que é normal ao voltar com o botão Voltar). Assim, o aplicativo não é notificado sobre as configurações alteradas dessa forma.
this.myself
37

Isso fez por mim

Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(callGPSSettingIntent);

Quando eles pressionam de volta, ele volta para o meu aplicativo.

TMH
fonte
Que tela de configurações isso oferece?
IgorGanapolsky
1
@IgorGanapolsky ele abre as configurações baseadas em localização dentro de "Configuração"
androminor
19

Você pode tentar ligar para:

startActivityForResult(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));

para outra tela na tela de configuração, você pode ir para

https://developer.android.com/reference/android/provider/Settings.html

Espero ajudá-lo neste caso.

Café Không Đường
fonte
2
Você precisa passar "REQUEST_CODE" como segundo argumento de startActivityForResult.
Chintan Rathod
9

Confira a página de exibição de configurações programaticamente

    startActivity(context, new Intent(Settings.ACTION_SETTINGS), /*options:*/ null);

Em geral, você usa a constante predefinida Settings.ACTION__SETTINGS. A lista completa pode ser encontrada aqui

GrIsHu
fonte
1
Existe uma maneira de abrir as configurações na nova opção: "Controlar quais aplicativos podem ler suas notificações" (adicionado na API 18)?
Javi
6

Para conseguir isso, basta usar um Intent usando a constante ACTION_SETTINGS , especificamente definida para mostrar as Configurações do Sistema:

startActivity(new Intent(Settings.ACTION_SETTINGS));

startActivityForResult () é opcional, apenas se você quiser retornar alguns dados quando a atividade de configurações for fechada.

startActivityForResult(new Intent(Settings.ACTION_SETTINGS), 0);

aqui você pode encontrar uma lista de conteúdos para mostrar configurações específicas ou detalhes de uma aplicação.

Jorgesys
fonte
6

Você pode fazer outra classe para fazer esse tipo de atividades.

public class Go {

   public void Setting(Context context)
    {
        Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
}
Shohan Ahmed Sijan
fonte
3

Use esta intenção para abrir a tela de segurança e localização no aplicativo de configurações do dispositivo Android

    startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
Satender Kumar
fonte
2

Caso alguém encontre esta pergunta e você deseje abrir as configurações para seu aplicativo específico:

    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    intent.data = Uri.parse("package:" + context.packageName)
    startActivity(intent)
tim.paetz
fonte
0

Enviar usuário para configurações com pacote localizado, exemplo para permissão WRITE_SETTINGS:

startActivityForResult(new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).setData(Uri.parse("package:"+getPackageName()) ),0);
phnghue
fonte
0

Abra a configuração de localização do Android programaticamente usando a caixa de diálogo de alerta

AlertDialog.Builder alertDialog = new AlertDialog.Builder(YourActivity.this);
alertDialog.setTitle("Enable Location");
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(intent);
      }
});
alertDialog.show();
Aftab Alam
fonte