1

可能这个问题看起来很奇怪,但实际上并不完全:)

我构建了一个可以在不同的 android 平板电脑上运行的应用程序。

我还有一个关于为每台平板电脑查找和唯一标识符的小问题,但我选择查找 wifi 和蓝牙 MAC 地址。

我阅读了 android 文档,但找不到我的问题的答案。这真的很奇怪,因为在我使用 bluetoothAdapter.getAddress() 的设备上,即使关闭了蓝牙服务,它也会返回实际的蓝牙 MAC 地址,我不知道为什么,但这不是问题。我认为并不是所有的安卓平板电脑都和我的一样特别,而且如果服务关闭,并不是所有的安卓平板电脑都会返回蓝牙 MAC 地址。但实际上 bluetoothAdapter.getAddress() 会正常返回什么?服务关闭时是否返回NULL?

如果你想问为什么不简单地打开服务然后找到MAC地址,我会告诉你这是一个有道理的问题:应用程序的目的与设备之间的蓝牙通信和类似的东西没有任何关系,因此,从用户的角度来看,当他打开应用程序时,即使该应用程序用于测量距离,平板电脑也需要蓝牙服务,这是不寻常的。

我很感谢那些会回答我的问题或给出提示的人!也许是一个解决方案:如何在用户不知道的情况下打开蓝牙服务。谢谢 ;)

4

2 回答 2

1

关于安装的唯一标识的相当古老但非常有用的帖子。在这里找到它。

附加评论:在我看来,当应用程序实际上不需要BT时,将蓝牙权限添加到您的应用程序清单中真的很糟糕。我个人想知道为什么,可能我会避免这样的应用程序。更糟糕的是,我会很漂亮如果应用程序在未经我许可的情况下使用一些 woobly-jubly 变通方法转为 BT 时会感到恼火。如果您想要成功的应用程序,请尊重您的用户

干杯

于 2013-09-05T09:36:17.417 回答
1

使用此代码启用蓝牙服务

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                        startActivityForResult(enableBtIntent, RESULT_OK);
于 2012-12-20T10:47:37.553 回答