以编程方式打开Android设置


Answers:


10

我使用了最受支持的答案中的代码:

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

它将在同一窗口中打开设备设置,从而使我的android应用程序(finnmglas / Launcher)的用户陷入其中。

2020年及以后的答案(在科特林):

startActivity(Intent(Settings.ACTION_SETTINGS));

它可以在我的应用程序中运行,也应该在您的应用程序中运行,而不会造成任何不良后果。


4
2020向您致敬!
Behnam

谢谢朋友,请像这样更新您的代码:startActivity(new Intent(Settings.ACTION_SETTINGS));
穆罕默德·阿里

200

你可以打开

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

您可以通过按设备上的返回按钮返回。


用户按下“清除缓存”按钮时有什么办法找回?
SweetWisher 2014年

1
@SweetWisherヅ您只需要编辑源代码。
Behnam

2
现在您可以使用Intent intent = new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS); startActivity(intent); 您可以从每个主要设置类别中选择一堆常量。只需编写设置。并且Android Studio会向您显示自动完成的所有类别。
阿西姆·卡西姆扎德(AsimQasımzade)

1
我可以在“设置”应用中搜索特定设置并从我的应用中以编程方式打开该特定设置吗?例如,我可以从手机设置中的应用程序搜索OTG吗?
Divya Gupta

在我看来,使用StartActivity就足够了,返回到应用程序时,总是得到结果CANCELD(当返回返回按钮时,这是正常的)。因此,不会以这种方式通知应用程序更改的设置。
this.myself

37

这为我做到了

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

当他们按回来时,它会返回我的应用程序。


这提供什么设置屏幕?
IgorGanapolsky

1
@IgorGanapolsky它会在“设置”中打开基于位置的设置
androminor


9

签出以编程方式显示设置页面

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

通常,您使用预定义的常量Settings.ACTION__SETTINGS。完整列表可以在这里找到


1
是否可以通过新选项打开设置:“控制哪些应用程序可以读取您的通知”(API 18中已添加)?
哈维2014年


6

您可以进行另一类此类活动。

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);
    }
}


2

万一有人发现此问题,而您想打开特定应用程序的设置,请执行以下操作:

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

0

将用户发送到具有找到的软件包的设置,例如WRITE_SETTINGS权限的示例:

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

0

使用警报对话框以编程方式打开android位置设置

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();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.