2013-07-28 160 views
-2

我有這個代碼的問題:如何解決「Locmanager」?

boolean gpsStatus = locmanager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
if (!gpsStatus) { 
    Settings.Secure.putString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "network,gps"); 
} 

我在這裏找到:https://stackoverflow.com/a/10004614/2628458 我試着開關「locmanager」與「的LocationManager」,並沒有奏效。它表示:「無法對來自類型LocationManager的非靜態方法isProviderEnabled(String)進行靜態引用。」

我該如何解決這個問題?

回答

0

,如果你想打開GPS,可以使用如下代碼

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

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

和關閉GPS

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

if(provider.contains("gps")){ 
final Intent intent = new Intent(); 
intent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
intent.addCategory(Intent.CATEGORY_ALTERNATIVE); 
intent.setData(Uri.parse("3")); 
sendBroadcast(intent); 
+0

謝謝你的回答。我試過這個代碼,我得到一個錯誤:Uri無法解決。什麼是Uri? 無論如何,我想使用普通的方法,而不是利用。我有一個根深蒂固的電話。 – user2628458

+0

你必須導入Uri。喜歡這個 ; import android.net.Uri; 或快捷鍵Ctrl + Shift + O(非零) – okarakose

+0

您應該將該權限放入清單文件中。 <使用權限android:name =「android.permission.ACCESS_FINE_LOCATION」/> – okarakose

0

,因爲你改變了一個參考對象實例你所得到的錯誤消息:

locManager 

成爲參考類:

LocationManager 

參考類是static。要理解這意味着什麼,請將類LocationManager作爲餅乾切割器,並將類似locManager1locManager2的對象視爲由該切割器創建的Cookie。

似乎很明顯,餅乾不能吃(消耗)它創建的cookie。同樣,Java不允許您從cookie切工器引用(或消費)cookie上的方法。

這是爲什麼?因爲餅乾包含狀態,而曲奇餅乾沒有。餅乾可以是綠色的(如果你把綠色的食用色素)。這是一個狀態的cookie,而不是餅乾。除非您第一次將它引用到cookie,否則您不能在cookie切割器上調用getColor方法,切餅機沒有顏色。

閱讀static,對象和實例。