Fixed Location Permission issue on Android - 1
This commit is contained in:
@ -3,6 +3,7 @@ import 'dart:io';
|
||||
//import 'dart:convert';
|
||||
//import 'dart:developer';
|
||||
import 'package:rogapp/model/gps_data.dart';
|
||||
import 'package:rogapp/pages/home/home_page.dart';
|
||||
import 'package:rogapp/utils/database_gps.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
|
||||
@ -31,6 +32,8 @@ import 'package:flutter/services.dart';
|
||||
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
|
||||
import 'pages/permission/permission.dart';
|
||||
|
||||
|
||||
Map<String, dynamic> deviceInfo = {};
|
||||
|
||||
@ -129,7 +132,10 @@ void main() async {
|
||||
|
||||
//Get.put(LocationController());
|
||||
|
||||
requestLocationPermission();
|
||||
//await PermissionController.checkAndRequestPermissions();
|
||||
//requestLocationPermission();
|
||||
|
||||
|
||||
|
||||
// startMemoryMonitoring(); // 2024-4-8 Akira: メモリ使用量のチェックを開始 See #2810
|
||||
Get.put(SettingsController()); // これを追加
|
||||
@ -143,10 +149,11 @@ void main() async {
|
||||
*/
|
||||
|
||||
runApp(const ProviderScope(child: MyApp()));
|
||||
|
||||
//runApp(HomePage()); // MyApp()からHomePage()に変更
|
||||
//runApp(const MyApp());
|
||||
}
|
||||
|
||||
/*
|
||||
Future<void> requestLocationPermission() async {
|
||||
try {
|
||||
final status = await Permission.locationAlways.request();
|
||||
@ -160,6 +167,7 @@ Future<void> requestLocationPermission() async {
|
||||
print('Error requesting location permission: $e');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// メモリ使用量の解説:https://qiita.com/hukusuke1007/items/e4e987836412e9bc73b9
|
||||
@ -289,6 +297,16 @@ Future<void> startBackgroundTracking() async {
|
||||
} catch (e) {
|
||||
print('Error starting background tracking: $e');
|
||||
}
|
||||
}else if (Platform.isAndroid && background == false) {
|
||||
background = true;
|
||||
debugPrint("バックグラウンド処理を開始しました。");
|
||||
|
||||
try {
|
||||
// 位置情報の権限が許可されているかを確認
|
||||
await PermissionController.checkAndRequestPermissions();
|
||||
}catch(e){
|
||||
print('Error starting background tracking: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -321,8 +339,12 @@ Future<void> stopBackgroundTracking() async {
|
||||
}else if(Platform.isAndroid && background==true){
|
||||
background=false;
|
||||
debugPrint("バックグラウンド処理:停止しました。");
|
||||
await positionStream?.cancel();
|
||||
positionStream = null;
|
||||
const platform = MethodChannel('location');
|
||||
try {
|
||||
await platform.invokeMethod('stopLocationService');
|
||||
} on PlatformException catch (e) {
|
||||
print("Failed to stop location service: '${e.message}'.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,6 +366,12 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
}
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
|
||||
/*
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
await PermissionController.checkAndRequestPermissions();
|
||||
});
|
||||
*/
|
||||
|
||||
debugPrint("Start MyAppState...");
|
||||
}
|
||||
|
||||
@ -458,6 +486,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
return GetMaterialApp(
|
||||
translations: StringValues(),
|
||||
locale: const Locale('ja', 'JP'),
|
||||
@ -480,4 +509,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||
enableLog: true,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user