GPS を使用するアプリを作成しています。初めてonCreate()
GPS が有効になっているかどうかを確認しています。有効になっていない場合は、ユーザーを設定メニューに送り、GPS を有効に設定します。
GPS が有効になったら、実行を開始します。しかし、その間にユーザーが通知マネージャーで GPS スクロールを停止した場合、どうすればこれを知ることができますか?
私のメソッドは、GPS が有効になっていないときに 1 回だけ実行されるためです。その後、再度無効にすると実行されません。
I just want to know whenever in between the work the GPS is disabled by the user. Just this information is required.
これが私のコードです。
class LocationFinderService extends Service{
boolean gps_enabled;
LocationManager locationManager;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
if(!isGpsEnabled())
{
startGpsForLocation();
stopSelf();
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public boolean isGpsEnabled()
{
gps_enabled = (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)&& locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER));
Log.i("Log", "Gps: "+gps_enabled);
return gps_enabled;
}
public void startGpsForLocation()
{
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
startActivity(intent);
Toast.makeText(this, "Please start the GPS", Toast.LENGTH_LONG).show();
}
}
Activity クラスのボタン クリックでこのサービスを呼び出しています。
どんな助けでも大歓迎です。