0
GPSが有効な場合にのみコードを実行したいアプリケーションを開発しています。GPSはオンですが、コードはまだ実行されていません。詳細をご覧ください
私は、コードのこの部分を使用してGPSをチェックしています:
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
をそして今、私はこのようにそれを使用しています:
if (isGPSEnabled) {
gps_off.setVisibility(View.INVISIBLE);
ReactiveLocationProvider locationProvider = new ReactiveLocationProvider(getBaseContext());
locationProvider.getLastKnownLocation()
.subscribe(new Action1<Location>() {
@Override
public void call(Location location) {
currentLatDoubleA = location.getLatitude();
currentLngDoubleA = location.getLongitude();
Toast.makeText(getBaseContext(), "User's location retrieved", Toast.LENGTH_SHORT).show();
}
});
// }
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
retrieveHRequest();
}
}, 2000);
} else {
gps_off.setVisibility(View.VISIBLE);
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "No location detected!", Snackbar.LENGTH_LONG)
.setAction("RETRY", new View.OnClickListener() {
@Override
public void onClick(View view) {
ifLocationAvailable();
}
});
snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);
snackbar.show();
}
問題はGPSを回した後でも、ということですオンにすると、Snackbar
はまだ表示されています。No location detected!
メッセージです。これは、GPSがオンのときでもGPSがオフのときに実行されるコードが実行されていることを意味します。
もう1つ注意すべき点は、アプリケーションを終了してからアプリケーションを再起動するときに、GPSがオンのときに実行するコードが問題なく実行されていることです。
ここで何が問題になりますか?
お知らせください。
どのように役立つか、私は疑問に与えられたコードに従って、このコードを調整/追加することができますか? –
<受信機アンドロイド:名= "BootReceiver。"> <意図-フィルタ> <アクションアンドロイド:名= "android.location.PROVIDERS_CHANGED" /> インテントフィルタ> は、マニフェストあなたにこれを追加し、上記のコード –
に感謝しますが、主な活動で上記のコードをどのように使用できますか? –