如何在安卓设备上打开GPS设置?

25

我正在制作一个GPS安卓应用(使用Adobe AIR),如果GPS未开启,我希望能够打开设备上的GPS设置或者切换GPS开关,但是我不知道如何实现。我想在AS3中实现或者在Java中打开安卓设置。感谢您的帮助!

2个回答

57

您可以使用此操作轻松启动活动:

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));

我把它用在一个对话框里:

public static void displayPromptForEnablingGPS(final Activity activity)
    {

        final AlertDialog.Builder builder =  new AlertDialog.Builder(activity);
        final String action = Settings.ACTION_LOCATION_SOURCE_SETTINGS;
        final String message = "Do you want open GPS setting?";

        builder.setMessage(message)
            .setPositiveButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface d, int id) {
                        activity.startActivity(new Intent(action));
                        d.dismiss();
                    }
            })
            .setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface d, int id) {
                        d.cancel();
                    }
            });
        builder.create().show();
    }

3
当我前往Settings.ACTION_LOCATION_SOURCE_SETTINGS并启用GPS,然后返回我的应用程序时,我的GPS似乎没有为该应用程序启用,当我刷新后,再次显示此警报以启用GPS。 - Samarth Kejriwal
不要忘记检查 if (intent.resolveActivity(packageManager) != null) 是否成立。 - Yvgen
@SamarthKejriwal 我也遇到了同样的问题,显然我的同事找到了一个补丁/解决方案,添加了:alertDialog.dismiss(); alertDialog.cancel(); context.startActivity(Intent(action)) - Gerrard

11
final Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);

启动活动(Intent(ACTION_LOCATION_SOURCE_SETTINGS)) - Kotlin版本 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接