如何以编程方式打开设置?
12 回答
你可以打开
startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);
您可以通过按设备上的返回按钮返回。
我使用了最受好评的答案中的代码:
startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);
它在同一个窗口中打开设备设置,从而让我的 android 应用程序(finnmglas/Launcher)的用户卡在那里。
2020 年及以后的答案(在 Kotlin 中):
startActivity(Intent(Settings.ACTION_SETTINGS))
它适用于我的应用程序,也应该适用于您的应用程序,而不会产生任何不良后果。
这是为我做的
Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(callGPSSettingIntent);
当他们按下时,它会返回到我的应用程序。
您可以尝试调用:
startActivityForResult(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
对于设置屏幕中的其他屏幕,您可以转到
https://developer.android.com/reference/android/provider/Settings.html
希望在这种情况下对您有所帮助。
如果有人发现此问题并且您想为您的特定应用程序打开设置:
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.parse("package:" + context.packageName)
startActivity(intent)
查看以编程方式显示设置页面
startActivity(context, new Intent(Settings.ACTION_SETTINGS), /*options:*/ null);
通常,您使用预定义的常量Settings.ACTION__SETTINGS
。完整列表可以在这里找到
您可以为进行此类活动制作另一个课程。
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);
}
}
要实现这一点,只需使用使用常量ACTION_SETTINGS的Intent,专门定义为显示系统设置:
startActivity(new Intent(Settings.ACTION_SETTINGS));
startActivityForResult()是可选的,仅当您想在设置活动关闭时返回一些数据时。
startActivityForResult(new Intent(Settings.ACTION_SETTINGS), 0);
在这里,您可以找到显示特定设置或应用程序详细信息的内容列表。
使用此意图在 android 设备的设置应用程序中打开安全和位置屏幕
startActivity(new Intent(Settings.ACTION_SECURITY_SETTINGS));
遵循以下描述的新 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))
}
使用定位的包将用户发送到设置,例如 WRITE_SETTINGS 权限:
startActivityForResult(new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).setData(Uri.parse("package:"+getPackageName()) ),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();