在ICS中打开GPS

时间:2012-09-18 14:27:27

标签: android gps

  

可能重复:
  ICS Android enable gps programmatically? [closed using an alternative approach]

我使用下面的代码以编程方式启用和禁用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上开发我们的应用程序了。

2 个答案:

答案 0 :(得分:1)

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

为什么开源意味着它不应该有限制?我糊涂了。开源只意味着您可以访问源代码。

就个人而言,使用Cocoa Touch开发适用于Android的开发比使用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);
     }
}

答案 1 :(得分:0)

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

管理GPS的最佳解决方案是打开Android的GPS偏好设置,让用户手动启用/禁用GPS。