134

如何以编程方式打开设置?

4

12 回答 12

213

你可以打开

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

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

于 2013-10-22T12:08:19.420 回答
41

我使用了最受好评的答案中的代码:

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

在同一个窗口中打开设备设置,从而让我的 android 应用程序(finnmglas/Launcher)的用户卡在那里。

2020 年及以后的答案(在 Kotlin 中):

startActivity(Intent(Settings.ACTION_SETTINGS))

它适用于我的应用程序,也应该适用于您的应用程序,而不会产生任何不良后果。

于 2020-05-29T18:39:57.890 回答
40

这是为我做的

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

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

于 2013-10-22T12:08:29.903 回答
22

您可以尝试调用:

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

对于设置屏幕中的其他屏幕,您可以转到

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

希望在这种情况下对您有所帮助。

于 2016-01-30T03:37:52.403 回答
10

如果有人发现此问题并且您想为您的特定应用程序打开设置:

    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
    intent.data = Uri.parse("package:" + context.packageName)
    startActivity(intent)
于 2020-04-24T14:23:12.167 回答
9

查看以编程方式显示设置页面

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

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

于 2013-10-22T12:13:38.927 回答
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);
    }
}
于 2015-03-10T06:12:57.893 回答
6

要实现这一点,只需使用使用常量ACTION_SETTINGS的Intent,专门定义为显示系统设置:

startActivity(new Intent(Settings.ACTION_SETTINGS));

startActivityForResult()是可选的,仅当您想在设置活动关闭时返回一些数据时。

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

在这里,您可以找到显示特定设置或应用程序详细信息的内容列表。

于 2016-09-14T19:56:44.140 回答
3

使用此意图在 android 设备的设置应用程序中打开安全和位置屏幕

    startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
于 2018-04-25T07:43:02.563 回答
3

遵循以下描述的新 api:https ://developer.android.com/training/permissions/requesting

private val goToSettingsRequest = registerForActivityResult(
    ActivityResultContracts.StartActivityForResult()
) { activityResult ->
    // TODO: DEAL WITH THE CALLBACK
}

private fun goToSettings() {
    goToSettingsRequest.launch(Intent(Settings.ACTION_SETTINGS))
}
于 2021-11-08T12:20:27.283 回答
1

使用定位的包将用户发送到设置,例如 WRITE_SETTINGS 权限:

startActivityForResult(new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).setData(Uri.parse("package:"+getPackageName()) ),0);
于 2020-01-08T05:24:41.477 回答
1

使用警报对话框以编程方式打开 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();
于 2020-05-03T15:30:13.750 回答