
Android
文章平均质量分 67
deparks
Bluetooth、Linux
展开
-
蓝牙HID无线触摸屏
写在前面主机:Android 5.0+ 内核3.4从机:SensorTile原理解析HID事件到Android屏幕上经历了如下过程:HID => linux kernel input子系统 => Android input子系统HID是标准的输入协议,对于不同的操作系统而言,也有自己的input子系统。Android层要求以Android为例,如果要想让Android系统认为一个输入设备是一个触摸屏,需要该内核设备上报:// 对于单点触控而言ABS_X A转载 2021-09-09 10:26:29 · 5098 阅读 · 2 评论 -
Android C++的sp<>指针简介
智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针,c++的智能指针有很多实现方式,有auto_ptr , unique_ptr , shared_ptr 三种,还有其他的。android 中的sp 句柄类实际上就是google 实现的一种强引用的智能指针, 是一个模板类。Android 中封装了sp<> 强指针,wp<>弱指针的操作。转载 2021-01-13 17:19:16 · 3179 阅读 · 0 评论 -
Android Bluetooth蓝牙名称和地址修改测试
根据前面的两篇文章,我们就来尝试一下对android蓝牙名称和地址进行修改。一、 蓝牙地址:添加属性ro.bt.bdaddr_path及对应的配置文件,修改蓝牙地址为public类型。1.修改 android/device/actions/s700_cb7/system.prop ,添加ro.bt.bdaddr_path属性。#hdmi config ro.hdmi.onoffmode=auto# add by zdxro.bt.bdaddr_path=/etc/bluetooth/bt_ad原创 2021-01-07 11:54:57 · 3060 阅读 · 0 评论 -
Android Bluetooth蓝牙设备地址修改
Android Bluetooth蓝牙设备地址修改读取蓝牙设备地址在蓝牙初始化的时候获取:bt_status_t btif_init_bluetooth(){ /* As part of the init, fetch the local BD ADDR */ memset(&btif_local_bd_addr, 0, sizeof(bt_bdaddr_t)); btif_fetch_local_bdaddr(&btif_local_bd_addr);}原创 2021-01-05 17:09:24 · 5482 阅读 · 1 评论 -
Android Bluetooth蓝牙名称修改
一、蓝牙名称获取AdapterService.java (packages\apps\bluetooth\src\com\android\bluetooth\btservice) static final int BT_PROPERTY_BDNAME = 0x01; static final int BT_PROPERTY_BDADDR = 0x02; public void onCreate() { getAdapterPropertyNative(Abstrac原创 2021-01-05 10:54:55 · 3064 阅读 · 0 评论 -
Android 蓝牙Hid开发
Demo下载:http://www.demodashi.com/demo/13891.html最近客户需求,android系统的一个设备,想连接一个扫描枪(类似蓝牙键盘,只支持hid协议),并且可以收到其数据,填写到输入框中。我这里借了一个蓝牙鼠标,用来与android设备连接。1 Hid简介HID设备(Hunman Interface Device Profile),即人机交互设备,常见的有鼠标,键盘,游戏手柄,等等。一般有线方式都是通过USB连线连接到机器设备,作为用户输入设备。在蓝牙技术中,HI转载 2020-12-25 14:38:20 · 6300 阅读 · 2 评论 -
Android GATT Discover过程抓包
Android GATT Discover 过程抓包Tool: Frontline BPA600Sniffer packets:Frame# Role Opcode Handle UUID Database Error code Frame size Delta TimeStamp原创 2020-12-18 16:16:43 · 501 阅读 · 2 评论 -
Android Bluetooth蓝牙connect过程
Android Bluetooth框架一、Settings界面下connect进入到android设置界面并打开蓝牙,扫描会自动开始。扫描到的蓝牙设备会显示在蓝牙列表中,点击设备即会对设备发起连接。BluetoothSettings.java (packages\apps\settings\src\com\android\settings\bluetooth)public final class BluetoothSettings extends DeviceListPreferenceFragm原创 2020-12-09 09:42:40 · 8150 阅读 · 1 评论 -
Android Bluetooth蓝牙scan过程
Android Bluetooth框架一、Settings界面下scan1. 打开蓝牙时自动扫描进入到android设置界面并打开蓝牙,扫描会自动开始。下面我们从android蓝牙设置界面开始分析:蓝牙开关按钮BluetoothSettings.java (packages\apps\settings\src\com\android\settings\bluetooth)public final class BluetoothSettings extends DeviceListPrefer原创 2020-11-24 18:48:29 · 5754 阅读 · 0 评论 -
Android Bluetooth蓝牙init过程
Android BlueDroid蓝牙init过程Android Bluetooth框架enable的追踪从settings app开始,一直到最底层的driver,基本按照上图的框架,把函数的调用过程代入图中有助于理解整个蓝牙的架构。源码追踪以下为Bluetooth的enable从settings app开始往下追踪的过程,当然仅为调用过程。1.BluetoothEnabler.java(packages\apps\settings\src\com\android\settings\bluet原创 2020-11-23 16:32:29 · 2295 阅读 · 2 评论 -
Android Bluetooth重要类和函数
一、BluetoothAdapter:BluetoothAdapter代表设备自身的蓝牙适配器。整个系统只有一个蓝牙适配器,通过framework层提供的公共接口getDefaultAdapter方法来获取这个对象。应用如果要操作蓝牙首先就要获得BluetoothAdapter。1. 应用层:方法一: 通过BluetoothManagerService返回的IBluetoothManager.aidl接口的实现类。final BluetoothManager bluetoothManager =原创 2020-11-23 11:02:42 · 802 阅读 · 0 评论 -
Android 启动service的方法
Android 启动service的方法Android中有两种主要方式启动Service:调用Context的startService方法调用Context的bindService方法一、startService启动服务的特点当我们通过调用了Context的startService方法后,我们便启动了Service,通过startService方法启动的Service会一直无限期地运行下去,只有在外部调用Context的stopService或Service内部调用Service的stopSe转载 2020-11-20 17:32:54 · 3620 阅读 · 0 评论 -
Android Bluetooth架构
Android BlueDroid架构Android系统蓝牙的整体架构,bluedroid作为蓝牙协议栈,实现了蓝牙的所有操作。整个系统的架构很简单,因为大多的事情都是在Bluedroid层里面做的,上层只管去Call和Callback就是了,这部分我们在后面分析代码做详细分析。BlueDroid主要分为3个部分:BTIF, BTA, StackBTIF:作为bluedroid与上层java framework的通道,提供bluedroid对外的接口BTA:提供各种profile的实现和处理S转载 2020-11-20 15:34:08 · 10225 阅读 · 0 评论 -
Android Bluetooth源码结构
Android Bluetooth源码结构原创 2020-11-19 18:39:47 · 2012 阅读 · 0 评论 -
Android Bluetooth蓝牙enable过程
Android BlueDroid蓝牙enable过程Android Bluetooth框架enable的追踪从settings app开始,一直到最底层的driver,基本按照上图的框架,把函数的调用过程代入图中有助于理解整个蓝牙的架构。源码追踪以下为Bluetooth的enable从settings app开始往下追踪的过程,当然仅为调用过程。1.BluetoothEnabler.java(packages\apps\settings\src\com\android\settings\blu转载 2020-11-18 18:55:58 · 3940 阅读 · 0 评论 -
tftp文件传输
tftp上传下载文件一、参数说明:-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后 重命名的文件名。-r 是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文 件名,或上传Server后 重命名后的文件名。-g 是get的缩写,下载文件时用,-p 是put的缩写,上传文件时用,tftp 默认占用的是69端口。二、更名下载或上传tftp的命令格式: tftp –g/-p 目标文件名 源文件名 服务器地址从Serve原创 2020-11-03 18:31:08 · 7694 阅读 · 0 评论 -
Android之蓝牙驱动开发总结
一Bluetooth基本概念 3二AndroidBluetooth架构 32.1Bluetooth架构图 32.2Bluetooth代码层次结构 3三Bluetooth协议栈分析 43.1蓝牙协议栈 43.2Android与蓝牙协议栈的关系 6四Bluetooth之HCI层分析 64.1HCI层与基带的通信方式 64.2包的分析及研究 74.3通信过程的研究...转载 2018-12-13 17:17:03 · 1791 阅读 · 0 评论 -
sendevent/getevent 用法
getevent&sendevent 是android系统下的一个工具,可以 模拟 多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。这两个命令的源码在system/core/toolbox/下,sendevent.c getevent.c 关于event设备的获取,在 /proc/bus/input/de...转载 2018-12-28 14:34:57 · 6225 阅读 · 0 评论 -
Android GATT 连接过程源码分析
Android GATT 连接过程源码分析 低功耗蓝牙(BLE)设备的通信基本协议是 GATT, 要操作 BLE 设备,第一步就是要连接设备,其实就是连接 BLE 设备上的 GATT service。结合上一篇文章,我这里结合源码,分析一下 GATT 连接的流程,以及各个模块是怎么相互交互的。注意本文依据的是 Android 4.4 的源代码。应用框架层首先,一般应用层都是通过调...转载 2018-12-12 14:00:17 · 4153 阅读 · 0 评论 -
getevnet详解
转自: https://www.cnblogs.com/lialong1st/p/9093851.html Android getevent用法详解getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。指令源码路径:/system/core/toolbox/getevent.c getevent -h:查看 getevent 帮助...转载 2018-12-25 14:16:27 · 1695 阅读 · 0 评论 -
Android : 输入设备键值从底层到应用层的映射流程
Android : 输入设备键值从底层到应用层的映射流程一、Android输入子系统简介: Android输入事件的源头是位于/dev/input/下的设备节点,而输入系统的终点是由WMS管理的某个窗口。最初的输入事件为内核生成的原始事件,而最终交付给窗口的则是KeyEvent或MotionEvent对象。因此Android输入系统的主要工作是读取设备节点中的原始事件,将其加工封装,然后...转载 2019-09-01 13:12:57 · 1794 阅读 · 0 评论 -
Android系统OTA升级流程
转自: https://www.2cto.com/kf/201610/558070.htmlAndroid系统进行升级的时候,有两种途径,一种是通过接口传递升级包路径自动升级,升级完之后系统自动重启;另一种是手动进入recovery模式下,选择升级包进行升级,升级完成之后停留在recovery界面,需要手动选择重启。前者多用于手机厂商的客户端在线升级,后者多用于开发和测试人员。但不管哪种,原理都是...转载 2018-06-20 09:33:47 · 3339 阅读 · 0 评论