我希望我的蓝牙在应用程序运行之前一直可见。就像无限的时间。我用完了就把它关掉。
我不希望它像下面的方法那样询问用户可见性的持续时间
Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300);
startActivity(discoverableIntent);
请帮助!
最佳答案
简而言之,你不能;请看this bug report。相信我,我和你一样对此感到恼火;这使得蓝牙上的特别网络非常困难。关于这一点,有一些建议认为,蜂巢的限制已经消失,也许会使它变成冰淇淋三明治。目前,除了安装一个自定义rom之外,没有办法绕过它。
尽管如此,还是有一些解决办法。由于android需要在任何蓝牙套接字(服务器或客户端)发送数据之前进行配对,因此您的应用程序只需尝试连接到已配对的设备。当然,大多数情况下连接都会失败,但如果配对设备在范围内,连接就会发生。我已经在我的一个应用程序中实现了这一点,它看起来很有用。我不知道这对电池寿命有什么影响,但扫描间隔时间足够长,你应该没事的。
我希望未来的android版本不会有这种不必要的限制,因为它会阻止一些潜在的有趣的ad hoc网络应用程序。