Androidで少なくとも1つの場所プロバイダが有効になっている場合にのみアプリケーションの入力を許可する

StackOverflow https://stackoverflow.com/questions/9493874

質問

アプリケーションでは、ユーザーに少なくとも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の前に、activitypausedです。activityのチェックコード...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top