28

私は現在、GPS で動作する Android のアプリを作成しています。現時点では、GPS が有効になっているかどうかを確認できます。私の問題は、アプリの起動時にGPSが無効になっている場合に有効にしたいということです。プログラムでこれを行うにはどうすればよいですか?

4

7 に答える 7

51

Android 1.5 以降ではできません。あなたができることは、アクティビティをポップして開き、ユーザーがオン/オフを切り替えられるようにすることです。保持されているアクションを使用して、android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGSこのアクティビティを開くインテントを作成します。

于 2009-06-27T00:33:48.010 に答える
15
if(!LocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ))
{
    Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS );
    startActivity(myIntent);
}
于 2010-07-23T02:22:54.827 に答える
6

このメソッドコードはあなたの助けになります

private void turnGPSOnOff(){
  String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
  if(!provider.contains("gps")){
    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);
    //Toast.makeText(this, "Your GPS is Enabled",Toast.LENGTH_SHORT).show();
  }
}
于 2011-09-29T12:34:44.397 に答える
3

以下を使用できます。

try {
  Settings.Secure.setLocationProviderEnabled(getContentResolver(), LocationManager.GPS_PROVIDER, true);
} catch (Exception e) {
  logger.log(Log.ERROR, e, e.getMessage());
}

ただし、システム署名保護レベルがある場合にのみ機能します。したがって、実際に使用するには、独自のイメージをクックする必要があります:/

于 2011-04-29T19:45:45.593 に答える
-5

質問がAndroidのユーザーレベルである場合、これらのプロパティは次の場所にあります"Settings -> Location -> Use wireless networks" -> "Settings -> Location -> Use GPS satellites"

ただし、開発者は"android.provider.Settings.Secure"適切な権限でクラスを使用できます。

于 2011-01-25T09:03:49.263 に答える