当前位置:首页 > 技术心得 > 正文内容

如何通过程序清除蓝牙缓存的设备名称?

xjtudll9年前 (2017-11-04)技术心得17140

http://stackoverflow.com/questions/10793761/how-to-programmatically-clear-the-bluetooth-name-cache-in-android

现象:

一个已经配对过的蓝牙设备,修改名称之后,手机上显示的依旧是以前的名称,并没有更新成最新的名字。

如果取消配对,再重新配对,名称又能更新。

所以,很明显android缓存了设备名称。

问题:

如何强制让android显示蓝牙设备的最新名称

方法:

使用fetchUuidsWithSdp(),调用这个函数之后,会强制重连设备并更新设备信息。

该函数仅在android 4.0.3之后才有效,而且API并非公开的,需要通过反射的方式调用。

参考代码如下:

public static void startFetch( BluetoothDevice device ) {     // Need to use reflection prior to API 15     Class cl = null;     try {         cl = Class.forName("android.bluetooth.BluetoothDevice");     } catch( ClassNotFoundException exc ) {         Log.e(CTAG, "android.bluetooth.BluetoothDevice not found." );     }     if (null != cl) {         Class[] param = {};         Method method = null;         try {             method = cl.getMethod("fetchUuidsWithSdp", param);         } catch( NoSuchMethodException exc ) {             Log.e(CTAG, "fetchUuidsWithSdp not found." );         }         if (null != method) {             Object[] args = {};             try {                 method.invoke(device, args);             } catch (Exception exc) {                 Log.e(CTAG, "Failed to invoke fetchUuidsWithSdp method." );             }                        }     } } 


扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/477/

标签: Android蓝牙
分享给朋友:

“如何通过程序清除蓝牙缓存的设备名称?” 的相关文章

固定水晶报表每页显示的行数两种方法

方法一:   例如每页显示20条记录:    1.选择[区段专家]    2.选择[明细]    3.选择[在之前新增分页]的公式按钮,输入以下公司    IF   Remaind...

Protel99SE PCB重复绘制导线

Protel99SE PCB重复绘制导线

Protel99SE PCB中,若相同Net的两个焊盘,默认是只能画一根导线的;或者说有三个相同Net的焊盘,那么只能将两边连起来,而有一边是无法连接起来的,如果你执意要连接,那么另外一边的导线将会自动去除。有没有什么办法重复绘制导线呢? Tools->Preference,将【Automat...

水晶报表的文本对象中怎么插入换行符

水晶报表的文本对象中如何插入换行符?我的文本对象要显示的值是从RichTextBox中读出来的,但文本对象不能显示“\n”,怎么让文本对象换行呢?------解决方案--------------------1:不要用文本对象,用公式2:把\n替换成水晶报表里的换行符号Replace(字段,'...

STM32串口发送数据首字符丢失解决办法

STM32串口发送数据首字符丢失解决办法

现象: 串口发送数据时,第一个字符丢失 例如,发送“system init\r\n”,最后收到的是“ystem init\r\n”,在此之后发送的数据均正常。 错误代码: 原因分析: TC 和 TXE 标志位在复位的时候被置1 ,这样第一次whil...

未能加载文件或程序集“file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports

首先我使用工具的信息为:Visual Studio 2010 ,水晶报表的版本为:13.0.0.99。 我想做的就是:使用VS2010中的WPF,将DataSet中的数据展示出来。(DataSet中的数据来自Oracle数据库) 但是我在运行的时候出现了这个问题: 未能加载文件或程序集“...

Google地图测距

Google地图测距

百度地图上有个测距功能,还是挺好用的。但百度地图有个缺点,没法看国外的东西,国外地图只显示了国家和首都,信息太匮乏了。 今天要测量欧洲两个城市的直线距离,百度不好使了,Google上默认又没有测距功能,搜了半天,找到了方法。 步骤如下: 1、在浏览器中输入http://ditu.google.cn/...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。