2014-01-28 68 views
0

我開始知道,我們無法在Android 2.3.3以上的Android版本中以編程方式禁用GPS,因此在我的Eclipse中,我創建了一個包含目標sdk 2.3.3版的應用程序,圖書館所需的,但我仍然無法禁用GPS。我正在嘗試以下方法。無法以編程方式在Android中禁用GPS

另外我想知道。在Android 4.x.x中,當GPS更新被刪除時,它會自動禁用GPS嗎?

Void stopGPS() 
{ 
    String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); 

    if (provider.contains("gps")) 
    { // if gps is enabled 
     final Intent poke = new Intent(); 
     poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
     poke.addCategory(Intent.CATEGORY_ALTERNATIVE); 
     poke.setData(Uri.parse("3")); 
     sendBroadcast(poke); 
    } 
} 

回答

0

Android準則已更改至4.0以上版本。對於4.0以上的版本,您無法以編程方式更改GPS。但是,您可以通過編程方式更改WiFi。

您使用的代碼是一個安全漏洞。它一直是固定的。應用程序無法以編程方式啓用或禁用GPS,除了可能在根目錄的設備上。

Original Source from CommonsWare's Answer

然而,對於GPRS相同的安全漏洞仍然是工作。

+0

但我想知道在Android 4.x.如果我們刪除GPS更新做到這一點,自動禁用GPS? –

+0

不,它不會禁用GPS,但會停止GPS,即刪除GPS獲取活動。 – user3243163

+0

如果是的話,如果GPS停止,那麼消耗電池電量仍然是相同或什麼? –

-2
public void turnGPSOff() 
{ 
    String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); 
    if(provider.contains("gps")){ //if gps is enabled 
     final Intent poke = new Intent(); 
     poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
     poke.addCategory(Intent.CATEGORY_ALTERNATIVE); 
     poke.setData(Uri.parse("3")); 
     this.ctx.sendBroadcast(poke); 
    } 
} 
+0

對我來說,這看起來像問題中的基本相同的代碼,沒有也沒有解釋。 – laalto

相關問題