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

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

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

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://xjtudll.cn/Exp/477/

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

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

MEMS微电子机械系统

文章来源:http://www.memschina.com MEMS(Micro Electromechanical System,即微电子机械系统)是指集微型传感器、执行器以及信号处理和控制电路、接口电路、通信和电源于一体的微型机电系统。概括起来,MEMS具有以下几个基本特点,微型化、智能化、多...

Mac OS安装心得

配置我就不说了,我的是Acer 4738G 安装的系统:东皇V3.2 下载地址:http://www.verycd.com/topics/2887773/ 具体安装教程可参照: 《新手windows下安装苹果教程。最详细,最全面,最值得看的教程》http://bbs.pcbeta.com/v...

Android手机Google服务耗电过多

手机:三星I9000 操作系统:Android 2.3.3 (Lida ROM) 现象:电池使用时间很短,经常莫名其妙就没电了。查看电量消耗,60%(甚至更多)为“Google框架服务”占用。 病因: 通过网络搜索,发现是因为曾经禁止了“Google框架服务&rd...

EEPROM读写注意事项

EEPROM读写注意事项

在实际使用EEPROM过程中,发现一些问题: 一、快速操作EEPROM造成读写数据出错 现象:读取的数据与写入的不同,但时序波形和硬件未发现任何问题。 在查阅EEPROM规格书后发现有一个很容易忽略的参数:TDHDL,此参数用于规定当对EEPROM进行一次I2C操作后必须再等待一段时间才能再对EEP...

两个IO 6按键

两个IO 6按键

分析: 首先:IO1,IO2输出高电平 S1按下,IO2为低电平 S2按下,IO1为低电平 S3按下,IO1,IO2为0.7V(1N4148导通电压),还是低电平。 现在开始判别其他几个按键了: 1、IO1输出低电平,读IO2电平 ① 如果IO2为低电平,此时应该是S4或者S6按下(S6按下时,...

IOS textField怎样设置只能输入英文字母或者数字,不能输入汉字

参考资料: http://segmentfault.com/q/1010000002705645/a-1020000002708433 //设置键盘类型 self.textField.keyboardType = UIKeyboardTypeASCIICapable; define kAlph...

发表评论

访客

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