2012-09-18 92 views
-3

可能重复:
ICS Android enable gps programmatically? [closed using an alternative approach]开启关闭GPS在ICS

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

回答

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); 
    } 
} 
0

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

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