2

クリックするとサービスを開始するボタンをアクティビティに含める予定です。ただし、サービスが機能するには GPS を有効にする必要があるため、GPS が無効になっている場合はボタンを無効にしたいと考えています。それに応じてボタンを有効/無効にできるように、GPSが有効/無効になっているときにAndroidにアクティビティを通知させる方法はありますか?

4

3 に答える 3

1

このリンクでは、ロケーション リスナーの作成方法について説明しています: http://blog.doityourselfandroid.com/2010/12/25/understanding-locationlistener-android/

将来サイトがダウンした場合に備えて、重要な部分を下にコピーしました。最初のステップは、LocationListener を作成することです。

private final class MyLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location locFromGps) {
        // called when the listener is notified with a location update from the GPS
    }

    @Override
    public void onProviderDisabled(String provider) {
       // called when the GPS provider is turned off (user turning off the GPS on the phone)
       // Dim the button here!
    }

    @Override
    public void onProviderEnabled(String provider) {
       // called when the GPS provider is turned on (user turning on the GPS on the phone)
       // Brighten the button here!
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
       // called when the status of the GPS provider changes
    }
}

次に、そのリスナーを登録します。これはおそらくあなたのonCreate()

LocationListener locationListener = new MyLocationListener();
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 10, this.locationListener);

requestlocationupdates の 2 番目と 3 番目のパラメーターはおそらく大きくする必要があるため、locationupdates を取得する必要はなく、プロバイダーの有効化/無効化の変更のみを気にする必要はありません。

于 2012-11-29T09:03:10.440 に答える
0

このコードを使用して GPS ステータスを取得してください。アクティビティの onResume でこのコードを使用します

private LocationManager mLocationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
boolean GPSprovider = mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

GPSProvider に従って、ボタンを有効または無効にできます。

于 2012-11-29T08:44:51.193 に答える
0

これを試して

final String GpsProvider = Settings.Secure.getString(
                getContentResolver(),
                Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (GpsProvider.equals(""){
//No GPS
}else{
 //GPS available 
}
于 2012-11-29T08:47:07.140 に答える