Android GPS 架构之 GPS 的开启与关闭 Android GPS 架构中的 GPS 开启与关闭是指在 Android 系统中如何启动和关闭 GPS 设备的过程。本文将详细介绍 GPS 的开启与关闭的代码实现、系统启动过程、数据库写入过程等相关知识点。 一、GPS 的开启 在 Android 中,普通应用程序无法直接启动 GPS 设备,需要跳转到设置界面让用户自己启动。安全第一啊!用户点击后执行代码为: `Intent intent;` `intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);` `startActivity(intent);` 这段代码将跳出设置界面,让用户自行启动 GPS 设备。 二、代码执行过程 在 settings/src/com/android/settings/SecuritySettings.java 中找到相关代码,了解 GPS 设备的开启过程。在 U1 项目中开启 GPS 设备的代码位于 packages/apps/TestProgram/trunk/u1/src/com/compal/tp/gps/GPSTest.java。 三、Settings.Secure.setLocationProviderEnabled 现在我们知道了开启 GPS 的代码为: `Settings.Secure.setLocationProviderEnabled(...)` 注意以上代码必须在 Linux 下编译,而且需要如下权限: `<uses-permission android:name="android.permission.WRITE_SETTINGS" />` `<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />` `android:sharedUserId="android.uid.system"` 四、Settings.Secure.setLocationProviderEnabled 的调用过程 研究一下 Settings.Secure.setLocationProviderEnabled(getContentResolver(),LocationManager.GPS_PROVIDER,true) 的调用过程。注意:LocationManager.GPS_PROVIDER 在 sdk 中为 Constant Value: "gps" 。 五、数据库写入过程 往数据库里写个字符串 "gps" 就能启动 GPS 设备吗?数据库在 Android 中,位置为:/data/data/com/android.providers.settings/databases/settings.db。 六、Android 启动过程 Android 从 Linux 系统启动有 4 个步骤: 1. init 进程启动 2. Native 服务启动 3. System Server, Android 服务启动 4. Home 启动 这里我们只关注 (3)System Server, Android 服务启动。系统 fork 了一个进程 : com.android.server.SystemServer. 于是 SystemServer@(SystemServer.java) 就建立了。 Android 的所有服务循环框架都是建立 SystemServer@(SystemServer.java) 上。 七、SystemServer.java 在 SystemServer.java 中看不到循环结构,只是可以看到建立了 init2 的实现函数,建立了一大堆服务,并 AddService 到 service Manager。 八、小结 Android GPS 架构中的 GPS 开启与关闭需要了解普通应用程序启动 GPS 设备的代码实现、Settings.Secure.setLocationProviderEnabled 的调用过程、数据库写入过程、Android 启动过程等相关知识点。只有掌握这些知识点,才能更好地理解 Android GPS 架构的工作机理。
剩余61页未读,继续阅读
- 粉丝: 1
- 资源: 52
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页