我希望获得android设备名称(即用户可以通过设置更改的“名称”,您可以在"Settings > About device > device name“下找到该名称)。
其他开发人员建议通过蓝牙获取这个名称。
但是在我的设备(三星Galaxy S4)上,只有当我启用蓝牙时才会更新这个名称,所以如果我在禁用蓝牙时更改了名称:在启用蓝牙之前不会显示新的名称。
我想知道是否有一种方法可以在不启用蓝牙的情况下获得更新的设备名称?我可以想出一个解决办法,比如:
但我想知道是否有一个更优雅的解决方案。
发布于 2016-04-04 09:06:01
您正在讨论的设备名称也称为蓝牙友好名称,因此通过蓝牙API读取它是完全有效的。
请注意,如果您的应用程序运行在非蓝牙设备上:这个名称不存在。
如果仔细阅读蓝牙API的医生,您将看到setName(...)方法:
..。如果蓝牙状态不是STATE_ON,则此API将返回false。打开蓝牙后,等待ACTION_STATE_CHANGED和STATE_ON获得更新的值。
换句话说:这种行为并不是您的设备特有的,但是它可以按照指定的方式工作。
您的解决方法是AFAIK,在禁用蓝牙时更改名称时获得更新名称的唯一方法(不幸的是,它有严重的缺点:启用/禁用BT成本高昂)。
还请注意,您必须等待ACTION_STATE_CHANGED和STATE_ON来获得更新的值。
https://stackoverflow.com/questions/36397730
复制相似问题