我正在开发一个应用程序,需要在一小时内以随机间隔进行蓝牙扫描。该应用程序还依赖于在这些时间间隔内可发现的设备。由于 Android 已将设备可发现的时间长度限制为 300 秒,因此我需要找到一种解决方法,这样我就可以使设备在一小时内可发现 3、300 秒,而无需用户交互。我同意用户必须允许应用程序在第一次扫描时被发现,而不是在其他两次扫描中被发现。
这里非常感谢任何帮助,我完全不知所措。
最佳答案
请参阅以下代码:
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
这会将手机的可发现持续时间设置为 5 分钟或 300 秒。它会显示一个对话框以获取用户的许可。
此外,如果您想让手机始终可被发现,请使用以下命令:
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
但是,请注意,出于安全目的,强烈建议不要这样做。
您可以通过以下链接获取更多信息:https://developer.android.com/guide/topics/connectivity/bluetooth
如果您不知道如何开始,我建议您阅读一些内容、查看示例和/或观看 YouTube 上的教程。
祝你好运
关于java - 用户是否可以授予应用程序权限,以便该应用程序可以在需要时让设备被发现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51291337/