Androidで少なくとも1つの場所プロバイダが有効になっている場合にのみアプリケーションの入力を許可する
-
14-11-2019 - |
質問
アプリケーションでは、ユーザーに少なくとも1つのロケーションプロバイダが有効になっている必要があります。1が有効になっているかどうかを知るために:
isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
.
今、私は誰も有効になっていないという警告を作成し、ユーザーが「GPSを有効にする」を選択した場合は、action_location_source_settingsのgpsオプションを開く。
私は(ユーザーの選択後)が彼が1を有効にしたかどうかを確認するために、そして彼がしたら彼が続けることだけをチェックしたい。
ボタン「GPSを有効にする」にこのコードを持っています
showGpsOptions();
isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (isGpsLocationEnabled || isNetworkLocationEnabled){
Intent startIntent = new Intent(EnableLocationProviderActivity.this, SensingService.class);
startService(startIntent);
} else {
finish();
}
.
私の問題は、ShowGPSoptions()の後にコードが実行されるため、ISGPSLocationEnabledおよびIsNetworkLocationEnabledがネットワーク設定でユーザーの選択を使用して更新されません(UIスレッドをブロックできませんが、この状況を経験できるようにするにはどうすればよいです。)
は、ネットワーク設定で何かを選択した後にコードを実行するのはありますか?
ありがとう!Guillermo。
解決
設定画面 activity
の前に、論理的およびACC DOCSの前に、activity
はpaused
です。activity
のチェックコード...
所属していません StackOverflow