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

公司做网站要注意什么前端性能优化有哪些方法

公司做网站要注意什么,前端性能优化有哪些方法,泰安房源最新出售,树莓派搭建wordpressAndroid14 蓝牙设备类型设置修改设置 文章目录 Android14 蓝牙设备类型设置修改设置一、前言二、修改蓝牙设备类型1、蓝牙设备类型和对应的属性2、Debug设备设置和获取蓝牙设备类型3、系统源码中设置蓝牙设备类型4、Java代码中设置蓝牙prop属性可行吗? 三、其他1、A…

Android14 蓝牙设备类型设置修改设置

文章目录

  • Android14 蓝牙设备类型设置修改设置
    • 一、前言
    • 二、修改蓝牙设备类型
      • 1、蓝牙设备类型和对应的属性
      • 2、Debug设备设置和获取蓝牙设备类型
      • 3、系统源码中设置蓝牙设备类型
      • 4、Java代码中设置蓝牙prop属性可行吗?
    • 三、其他
      • 1、Android13蓝牙prop协议属性相关内容:
      • 2、蓝牙设备属性未分析到的地方
        • (1)源码中读取蓝牙设备属性的处理
        • (2)其他设备扫描到的蓝牙属性值和系统定义的设备属性值的关联过程
      • 3、Android 蓝牙设备类型判断代码介绍
      • 4、Android14 大屏开机后蓝牙可搜索但无法连接分析解决

一、前言

Android 蓝牙设备类型有啥用?就是显示蓝牙类型作用。
Android设备打开蓝牙后,其他手机可以搜到该蓝牙设备,一般显示为电话或者平板。
但是很多源码编译出来的系统默认是显示耳机类型,那么如何修改呢?

如果是Android11 或者更旧的版本可以参考:

https://blog.csdn.net/xiao5678yun/article/details/80738147
https://blog.csdn.net/zmk0810612124/article/details/82222415
https://blog.csdn.net/weixin_39008937/article/details/134850641
大致修改:

XXX.h //不同的方案具体目录不同,一般在device或者system
#define BTA_DM_COD {0x5A, 0x02, 0x0C}        // 手机端搜索到的蓝牙显示手机图标#define BTA_DM_COD {0x5A, 0x04, 0x06}        // 手机端搜索到的蓝牙显示带耳麦的耳机图标#define BTA_DM_COD {0x5A, 0x04, 0x18}        // 手机端搜索到的蓝牙显示不带耳麦的耳机图标

Android14 版本也能搜到到定义 BTA_DM_COD 的地方,但是修改了没有作用。

那么Android14 修改蓝牙设备类型,需要如何修改呢?

其实Android13开始,蓝牙的协议就设置成prop属性定义了,所以蓝牙的设备类型也是一个prop属性了。

验证通过prop属性修改蓝牙类型是OK的,并且蓝牙类型的prop属性可以串口修改,关开一次蓝牙就能生效。

目前关于Android13以上的蓝牙设备类型修改的文章暂时还没有,有兴趣的可以查看或者收藏。

二、修改蓝牙设备类型

1、蓝牙设备类型和对应的属性

bluetooth.device.class_of_device=26,1,10 //平板/电脑
bluetooth.device.class_of_device=40,4,60 //耳机/音箱
bluetooth.device.class_of_device=90,2,12 /电话/手机类型
bluetooth.device.class_of_device=1,2,3 //随便设置一个,显示为电话类型

2、Debug设备设置和获取蓝牙设备类型

//设置蓝牙设备类型,平板
setprop bluetooth.device.class_of_device=26,1,10//查看蓝牙设备类型
getprop bluetooth.device.class_of_device

3、系统源码中设置蓝牙设备类型

既然是prop属性,那么写在某个mk里面就可以了吧,
但是不同的芯片系统方案,写法可能会有不同,
比如9679 方案,有devices目录下有个bluetooth.prop文件专门用来定义蓝牙相关prop属性的。

device/mediatek/mt5879/configs/bluetooth.prop

bluetooth.device.class_of_device=40,4,60 //默认居然是耳机!
bluetooth.device.class_of_device=26,1,10
bluetooth.profile.a2dp.source.enabled?=true
bluetooth.profile.avrcp.target.enabled?=true
bluetooth.profile.bas.client.enabled?=true
...

比如3588方案,并没有个 bluetooth.prop文件,都是用mk文件定义的prop属性。

device/rockchip/common/modules/bluetooth.mk

# Set supported Bluetooth profiles to enabled
PRODUCT_PRODUCT_PROPERTIES += \ //普通属性也可以这样设置默认值bluetooth.device.class_of_device?=26,1,10 \ //这个属性原本没有,是我加的!bluetooth.profile.asha.central.enabled?=true \bluetooth.profile.a2dp.source.enabled?=true \bluetooth.profile.avrcp.target.enabled?=true \bluetooth.profile.bas.client.enabled?=true \bluetooth.profile.gatt.enabled?=true \bluetooth.profile.hfp.ag.enabled?=true \bluetooth.profile.hid.device.enabled?=true \bluetooth.profile.hid.host.enabled?=true \bluetooth.profile.map.server.enabled?=true \bluetooth.profile.opp.enabled?=true \bluetooth.profile.pan.nap.enabled?=true \bluetooth.profile.pan.panu.enabled?=true \bluetooth.profile.pbap.server.enabled?=true \bluetooth.profile.sap.server.enabled?=true
...

大致的修改就上面两种情况,
一种是修改在某个prop文件,另外一种修改在mk文件。

但是也排除有其他文件定义的情况,可以在关键目录先搜索看看:

grep -nr bluetooth.device.class_of_device
grep -nr bluetooth.profile.a2dp.source.enabled

class_of_device 属性设备,不一定会定义,但是 a2dp.source 源码中肯定会定义的。

4、Java代码中设置蓝牙prop属性可行吗?

Java设置prop代码

SystemProperties.set("bluetooth.device.class_of_device", "40,4,60");

最好不要这样做。
因为的有在9679和3588 方案的开机广播和系统服务启动后设置该属性,查看打印是有报错提示的。
并且再次重启有概率系统无法起来,进入Recovery模式。

所以这个估计是不可行的。
就像Android13 之后的代码,无法执行需要系统权限的adb shell命令那样。
估计和系统权限限制有关。

三、其他

1、Android13蓝牙prop协议属性相关内容:

如果是做蓝牙相关研究,蓝牙prop属性是必须要掌握的;
这个是Android13 新出的,很多蓝牙之前设置的属性就不管用了。

https://blog.csdn.net/wenzhi20102321/article/details/139703045

2、蓝牙设备属性未分析到的地方

(1)源码中读取蓝牙设备属性的处理

系统代码中哪里处理属性 bluetooth.device.class_of_device ?
在源码中大致有两个地方有读取这个属性:

package\modules\Bluetooth\system\btif\src\btif_dm.cc
package\modules\Bluetooth\system\gd\sysprops\sysprops_module.cc

但是未看到读取属性后的具体判断和处理!
也可能是c代码不熟悉,看不懂具体处理过程。

(2)其他设备扫描到的蓝牙属性值和系统定义的设备属性值的关联过程

Java 代码中耳机类型的值的定义:

//蓝牙耳机
action = android.bluetooth.device.action.BOND_STATE_CHANGED//其他广播也打印,这边不一一写
device = 0D:3F:91:E2:FF:D3
getAlias = Y-12
type = 1
getDeviceClassType = 1028 // -->0x404
getMajorDeviceClassType = 1024  // -->0x400

Java上定义的值在不同版本上目前是没有修改的,
这个和上面定义的prop值或者更早的BTA_DM_COD 的定义都是不同的,
难道和Android按钮键值一样,有一套映射文件和流程?
有兴趣的可以自己研究看看。

3、Android 蓝牙设备类型判断代码介绍

使用Java代码如何获取和区分蓝牙设备类型

https://blog.csdn.net/wenzhi20102321/article/details/133777224

4、Android14 大屏开机后蓝牙可搜索但无法连接分析解决

Android14 上可能会有的问题:

https://blog.csdn.net/wenzhi20102321/article/details/141069481

http://www.hkea.cn/news/294821/

相关文章:

  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站
  • 长沙市在建工程项目免费seo快速排名工具
  • 南宁定制网站制作电话图片外链生成工具
  • 哪些网站做的海报比较高大上百度客服电话是多少
  • 菏泽网站建设电话常州seo外包
  • 做木皮的网站裂变营销五种模式十六种方法
  • 精美 企业网站模板微信软文推广怎么做
  • 怎么建立一个网站里面可以查询资料百度权重域名
  • 网站建设顺序镇江交叉口优化
  • 低价企业网站搭建软文新闻发布网站
  • 创造与魔法官方网站做自己喜欢的事seo视频
  • 淘宝联盟推广网站怎么做吉安seo招聘
  • 工程招聘网站如何免费制作自己的网站
  • 网站建设调研问卷搜易网托管模式的特点
  • 在哪个网站可以做java面试题宁德市蕉城区疫情
  • 2021年重大新闻事件seo快速工具
  • 拼多多网店南宁优化推广服务
  • 洛阳建筑公司排名长沙官网seo服务
  • 网站关键词优化公司哪家好企业网站seo点击软件
  • 做网站有必要?优化师培训
  • 网站怎么发布信息百度推广优化技巧
  • 西安软件培训百度百科优化排名
  • 网站上文章加入音乐是怎么做的网页代码
  • 深圳公布最新出行政策徐州seo招聘
  • wordpress的漏洞seo优化知识
  • 网站建设高端seo和sem分别是什么
  • 成交功能网站怎么推广自己的产品