-2

このコードに問題があります:

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) への静的参照を作成できません。」

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

オブジェクト インスタンスへの参照を変更したため、次のエラー メッセージが表示されます。

locManager

クラスへの参照に:

LocationManager

クラスへの参照は静的です。 これが何を意味するかを理解するには、クラス LocationManager をクッキー カッターと考えてください。また、 や のようなオブジェクトをlocManager1locManager2そのクッキー カッターによって作成されたクッキーと考えてください。

クッキー カッターが作成したクッキーを食べる (消費する) ことができないことは明らかです。同様に、Java では、Cookie カッターから Cookie のメソッドを参照 (または消費) することはできません。

どうしてこれなの?Cookie には状態が含まれますが、Cookie カッターには含まれないためです。クッキーは緑色にすることができます (緑色の食品着色料を入れた場合)。それは、クッキー カッターではなく、クッキーの状態です。最初に Cookie への参照を渡さない限りgetColor、Cookie カッターでメソッドを呼び出すことはできません。 クッキーカッターには色がありません。

static、オブジェクト、およびインスタンスについて読んでください。

于 2013-07-28T23:44:34.573 に答える
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);
于 2013-07-28T22:54:08.637 に答える