2012-02-29 209 views
0

在我的應用程序中,用戶必須至少啓用一個位置提供程序。爲了知道如果啓用我用:只有在Android中至少啓用了一個位置驗證器時才允許輸入應用程序

isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE)) 
       .isProviderEnabled(LocationManager.GPS_PROVIDER); 
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE)) 
       .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

現在,我創建了一個活動:提醒沒有被啓用,如果用戶選擇「啓用GPS」我打開與ACTION_LOCATION_SOURCE_SETTINGS意圖GPS選項。

我想(選擇用戶後)檢查他是否啓用了一個,並且只有讓他繼續,如果他這樣做。

我有按鈕,在「啓用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(); 
} 

我的問題是isGpsLocationEnabled和isNetworkLocationEnabled永遠不會與在網絡設置中用戶選擇的代碼繼續showGpsOptions後,其執行更新的代碼() (我知道它不能阻止UI線程,但我怎麼能超越這種情況)?

有沒有辦法在用戶選擇網絡設置中的某些內容後執行代碼?

謝謝!吉列爾莫。

+0

您可以隨時在後臺運行一個線程(接收器,服務,線程),它將檢查情況並運行代碼。 – MKJParekh 2012-02-29 05:27:30

回答

0

設置屏幕進來你activity,邏輯上的前部和ACC​​到文檔,你activitypaused,然後在需要時您activityresumed ......所以我想,你應該使用檢查代碼中onResume ...

相關問題