当前位置: 首页 > ds >正文

Android Gnss模块初步整理

一. 概述:

        Android的Gnss功能分布在App层和Framework层,App层主要调用LocationManager,通过Binder调用请求Framework的LocationManagerService服务,注册回调函数等:

1. // 获取Fw的LocaitonManagerService
locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);2. // 权限申请
requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION }, permissionRequestCode)3. // 注册定制变化监听
3.1 // 创建ILocationListener
private LocationListener locListener = new LocationListener() {@Overridepublic void onLocationChanged(@NonNull Location location) {}@Overridepublic void onProviderDisabled(String arg0) {}@Overridepublic void onProviderEnabled(String arg0) {}@Overridepublic void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
};3.2 向LocationManagerService注册Listener
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, updateInterval, minDistanceM, locListener);4. // 等待地址更新

二. 类结构:

App -> LocationManager -> LocationManagerService -> LocationProviderManager -> GnssLocationProvider ->GnssNative -> GnssHal ->com_android_server_location_GnssLocationProvider -> hal service(对接外部Gnss数据来源)

三. 主要时序:

http://www.xdnf.cn/news/10031.html

相关文章:

  • Transformer模型:多头注意力机制深度解析
  • 在MDK中自动部署LVGL,在stm32f407ZGT6移植LVGL-8.3,运行demo,显示label
  • leetcode刷题 java总结
  • 数据库 | 使用timescaledb和大模型进行数据分析
  • Allegro 输出生产数据详解
  • BigemapPro 数据坐标转度分秒格式教程
  • C++_核心编程_ 左移运算符重载 “<<” 左移运算符
  • 解释k8s种ConfigMap和Secret的作用,如何在Pod中挂载环境变
  • PortSwigger-04-cors
  • 快递物流查询接口如何用C#进行调用?
  • 微机消谐装置:保障PT柜安全的核心设备
  • 第二章支线一:影之殿堂 · 阴影与过渡魔法
  • 下一代数模ai智能体研发意见征集
  • Win11安装Dify
  • 【Linux】(1)—进程概念-③Linux进程概念与PCB
  • 重温经典算法——选择排序
  • 从“刚性扩容”到“弹性供给”:移动充电服务重构配电网边际成本
  • Node.js 中 require 源码解析
  • 从零起步认知微内核操作系统(AGI)
  • JavaScript 循环语句总结
  • Linux浅谈
  • VMware安装esd格式系统镜像
  • Java实现命令行图书管理系统(附完整源码)
  • 使用 C/C++ 和 OpenCV 调用摄像头
  • Java打包在加载外面的yaml文件
  • 2025LitCTF 复现
  • 【SQL】关键字
  • 【笔记】suna部署之获取 Supabase API key 和 project URL
  • 【笔记】suna部署之获取 Tavily API key
  • 第42节:模型优化与部署:Web服务部署(Flask, FastAPI)