Android のGPS切断からの復帰処理のデバッグ
This commit is contained in:
@ -65,6 +65,26 @@ class LocationService : Service() {
|
||||
|
||||
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
|
||||
|
||||
// 位置情報の権限チェックとGPS有効化の確認を行う
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||
val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
|
||||
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
||||
val locationRequest = LocationRequest.create().apply {
|
||||
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
|
||||
interval = 10000
|
||||
fastestInterval = 5000
|
||||
}
|
||||
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null)
|
||||
} else {
|
||||
Log.d("LocationService", "GPS is disabled.")
|
||||
// GPSが無効の場合の処理を追加する(例: ユーザーにGPSを有効にするように促すなど)
|
||||
}
|
||||
} else {
|
||||
Log.d("LocationService", "Location permission is not granted.")
|
||||
// 位置情報の権限が許可されていない場合の処理を追加する
|
||||
}
|
||||
|
||||
/*
|
||||
// GPSデバイスが有効になっているか確認する
|
||||
val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
|
||||
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
|
||||
@ -73,6 +93,7 @@ class LocationService : Service() {
|
||||
}else{
|
||||
Log.d("LocationService", "GPS is enabled.")
|
||||
}
|
||||
*/
|
||||
|
||||
// フォアグラウンドサービスの設定
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
@ -185,6 +206,7 @@ class LocationService : Service() {
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
Log.d("LocationService", "Android: onStartCommand.")
|
||||
|
||||
/* onCreate でやってるので除外。
|
||||
// 位置情報の権限チェックとGPS有効化の確認を行う
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||
val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
|
||||
@ -204,6 +226,8 @@ class LocationService : Service() {
|
||||
// 位置情報の権限が許可されていない場合の処理を追加する
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// Foregroundサービスを開始
|
||||
startForeground(NOTIFICATION_ID, createNotification())
|
||||
|
||||
|
||||
@ -93,6 +93,7 @@ class MainActivity: FlutterActivity() {
|
||||
} else {
|
||||
Log.d("MainActivity", "Location permission is not granted.")
|
||||
// 位置情報の権限が許可されていない場合の処理を追加する
|
||||
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), PERMISSION_REQUEST_CODE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user