-3

可能重复:
ICS Android 以编程方式启用 gps?[使用另一种方法关闭]

我使用下面的代码以编程方式启用和禁用 GPS,并在 2.2 和 2.3 中完美运行。

Intent i = new Intent();
i.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
i.addCategory(Intent.CATEGORY_ALTERNATIVE);
i.setData(Uri.parse("3"));     
context.sendBroadcast(i);

但是,当尝试使用 ICS (4.0) 时,发现它不起作用。然后我发现这是一个错误,如下面的链接。 http://code.google.com/p/android/issues/detail?id=7890

我相信我们已经修复了 ICS。

谁能告诉我在 ICS 中是否有解决此问题的替代方法?

我认为操作系统荒谬的“开源”有很多限制。我已经开始后悔选择在 Android 上开发我们的应用程序。

4

2 回答 2

1

我相信这是一项安全功能,您无法以编程方式更改 GPS 状态。

为什么开源意味着它不应该有限制?我很困惑。开源只是意味着您可以访问源代码。

就个人而言,为 Android 开发比使用 Cocoa Touch 为 iOS 开发要痛苦得多。

编辑:

尝试使用它让用户知道他们需要启用 GPS。

(来源: http: //manishkpr.webheavens.com/android-syste-gps-setting-intent/

private void checkGPS(){
     locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L,1.0f, this);
     boolean isGPS = locationManager.isProviderEnabled (LocationManager.GPS_PROVIDER);
     if(isGPS){
        showToast("Gps On");
     }else{

        startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
     }
}
于 2012-09-18T14:30:27.440 回答
0

这些限制是因为安全问题。您不应该尝试实现这种情况,因为它现在可以工作,但在接下来的几天内可以修复 - 例如自定义 rom。

管理 GPS 的最佳解决方案是打开 Android 的 GPS 首选项并让用户手动启用/禁用 GPS。

于 2012-09-18T14:32:04.667 回答