You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
import '/core/utils/logger.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:location_service/location_service.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
import '/core/utils/permission_util.dart';
|
|
|
|
//音乐播放管理
|
|
class LocationManager extends GetxService {
|
|
static LocationManager get to => Get.find<LocationManager>();
|
|
|
|
// 音乐服务实例
|
|
final LocationService _musicService = LocationService();
|
|
|
|
/// 初始化
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
requestNotificationPermission();
|
|
Logger.info('初始化权限请求');
|
|
}
|
|
|
|
Future<void> requestNotificationPermission() async {
|
|
final granted = await PermissionUtil.instance.requestPermission(
|
|
// context: context,
|
|
permissionType: Permission.locationAlways,
|
|
permissionName: '通知',
|
|
explanationText: '需要定位权限来获取当前位置。',
|
|
permanentDenialText: '您已永久定位通知权限,请前往设置开启权限。',
|
|
settingsButtonText: '去设置',
|
|
cancelButtonText: '取消',
|
|
);
|
|
|
|
if (!granted) {
|
|
Logger.warning('通知权限未被授予');
|
|
return;
|
|
}
|
|
|
|
Logger.info('通知权限已授予');
|
|
}
|
|
|
|
/// 释放资源
|
|
@override
|
|
void onClose() {
|
|
super.onClose();
|
|
}
|
|
|
|
//定位
|
|
Future<Map<String, dynamic>> location() async {
|
|
return await _musicService.location();
|
|
}
|
|
}
|
|
|