2012-09-18 91 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。