Commit 438b3dad by Lee Jaebin

設定画面の位置情報 ON\OFF 取得方法の追加(getSystemServiceから取得できないため、どっちかがtureの場合、位置情報をONと見做す)

parent 28097a96
...@@ -4,6 +4,7 @@ import java.util.Date; ...@@ -4,6 +4,7 @@ import java.util.Date;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import jp.agentec.abook.abv.bl.common.ABVEnvironment;
import jp.agentec.abook.abv.bl.common.log.Logger; import jp.agentec.abook.abv.bl.common.log.Logger;
import jp.agentec.abook.abv.launcher.android.ABVApplication; import jp.agentec.abook.abv.launcher.android.ABVApplication;
import jp.agentec.abook.abv.launcher.android.ABVUIDataCache; import jp.agentec.abook.abv.launcher.android.ABVUIDataCache;
...@@ -19,6 +20,7 @@ import android.location.LocationListener; ...@@ -19,6 +20,7 @@ import android.location.LocationListener;
import android.location.LocationManager; import android.location.LocationManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.provider.Settings;
public class LocationManagerUtil { public class LocationManagerUtil {
private final String TAG = "LocationManagerUtil"; private final String TAG = "LocationManagerUtil";
...@@ -67,7 +69,10 @@ public class LocationManagerUtil { ...@@ -67,7 +69,10 @@ public class LocationManagerUtil {
final boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); final boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
final boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); final boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!gps && !network) { // GPSの状態を取得(getSystemtServiceからのGPS ON/OFF取得が取れない場合があるため、secureで取得したgpsも判定するため)
final boolean secureLocationGpsEnabled = android.provider.Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED).indexOf("gps", 0) >= 0;
if (!(gps || network) || !(secureLocationGpsEnabled || ABVEnvironment.getInstance().networkAdapter.isNetworkConnected())) {
// この時点で位置情報サービスが有効でない場合は何もしない。 // この時点で位置情報サービスが有効でない場合は何もしない。
setLocationFailed(); setLocationFailed();
return; return;
...@@ -234,7 +239,11 @@ public class LocationManagerUtil { ...@@ -234,7 +239,11 @@ public class LocationManagerUtil {
if (locationManager != null) { if (locationManager != null) {
final boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); final boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
final boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); final boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!gps && !network) {
// GPSの状態を取得(getSystemtServiceからのGPS ON/OFF取得が取れない場合があるため、secureで取得したgpsも判定するため)
final boolean secureLocationGpsEnabled = android.provider.Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED).indexOf("gps", 0) >= 0;
if (!(gps || network) || !(secureLocationGpsEnabled || ABVEnvironment.getInstance().networkAdapter.isNetworkConnected())) {
ABVUIDataCache appDataCache = ABVApplication.getABVUIDataCache(context); ABVUIDataCache appDataCache = ABVApplication.getABVUIDataCache(context);
if (appDataCache.checkLocationServiceFlg) { if (appDataCache.checkLocationServiceFlg) {
// 位置情報が有効になっていない場合は、Google Maps アプリライクなダイアログを起動します。 // 位置情報が有効になっていない場合は、Google Maps アプリライクなダイアログを起動します。
......
...@@ -11,6 +11,7 @@ import android.media.AudioManager; ...@@ -11,6 +11,7 @@ import android.media.AudioManager;
import android.media.MediaPlayer; import android.media.MediaPlayer;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.widget.Toast; import android.widget.Toast;
import com.nttdocomo.android.sdaiflib.BeaconData; import com.nttdocomo.android.sdaiflib.BeaconData;
...@@ -297,8 +298,11 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity { ...@@ -297,8 +298,11 @@ public class ABVCheckContentViewActivity extends ABVContentViewActivity {
LocationManager lm = (LocationManager) this.getSystemService(this.LOCATION_SERVICE); LocationManager lm = (LocationManager) this.getSystemService(this.LOCATION_SERVICE);
final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
// GPSの状態を取得(getSystemtServiceからのGPS ON/OFF取得が取れない場合があるため、secureで取得したgpsも判定するため)
final boolean secureLocationGpsEnabled = android.provider.Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED).indexOf("gps", 0) >= 0;
//端末側の位置情報許可チェック //端末側の位置情報許可チェック
if (gpsEnabled) { if (gpsEnabled || secureLocationGpsEnabled) {
ABookPermissionHelper helper = new ABookPermissionHelper(this, Constant.ABookPermissionType.AccessFineLocation, null); ABookPermissionHelper helper = new ABookPermissionHelper(this, Constant.ABookPermissionType.AccessFineLocation, null);
//アプリ側の位置情報許可チェック(置くだけセンサーとLinkingアプリの通信できないため) //アプリ側の位置情報許可チェック(置くだけセンサーとLinkingアプリの通信できないため)
......
...@@ -12,6 +12,7 @@ import android.location.LocationManager; ...@@ -12,6 +12,7 @@ import android.location.LocationManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.provider.Settings;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.Button; import android.widget.Button;
...@@ -210,8 +211,12 @@ public class PairingSettingActivity extends ABVUIActivity { ...@@ -210,8 +211,12 @@ public class PairingSettingActivity extends ABVUIActivity {
LocationManager lm = (LocationManager) this.getSystemService(this.LOCATION_SERVICE); LocationManager lm = (LocationManager) this.getSystemService(this.LOCATION_SERVICE);
final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); final boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
// GPSの状態を取得(getSystemtServiceからのGPS ON/OFF取得が取れない場合があるため、secureで取得したgpsも判定するため)
final boolean secureLocationGpsEnabled = android.provider.Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED).indexOf("gps", 0) >= 0;
//端末側の位置情報許可チェック //端末側の位置情報許可チェック
if (!gpsEnabled) { if (!(gpsEnabled || secureLocationGpsEnabled)) {
showSimpleAlertDialog(R.string.set_pairing_central_thermometer, R.string.msg_location_device_no_allow); showSimpleAlertDialog(R.string.set_pairing_central_thermometer, R.string.msg_location_device_no_allow);
return; return;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment