-2

如果已关闭,是否可以以编程方式打开设备上的 LocationProviders(GPS 提供程序/网络提供程序)?

我可以在 android 2.2 和 2.3 中毫无问题地打开 gps,但在 android 4.0 或 4.1 中,当我使用此代码打开 gps 时。gps 图标出现在通知中,但我无法在我的程序中获取当前位置

   Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
   intent.putExtra("enabled", true);
   sendBroadcast(intent);

我现在做什么?我需要它紧急

4

1 回答 1

1

GeoBits 发布了解释为什么应该(并且不能)以编程方式打开 GPS 的正确链接。

相反,只需打开设备的设置菜单,让用户完成这项工作。因此,您必须使用这样的 Intent:

    Intent i = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    startActivity(i);

也可以启动此 Activity 以获得结果,以检查用户是否在 onActivityResult() 中启用了 GPS。这可以这样做:

    public boolean checkForGpsProvider() {
        LocationManager locationManager = (LocationManager)
                getSystemService(Context.LOCATION_SERVICE);

        return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    }
于 2013-07-23T15:38:53.107 回答