java - 用户是否可以授予应用程序权限,以便该应用程序可以在需要时让设备被发现?

标签 java android ios bluetooth

我正在开发一个应用程序,需要在一小时内以随机间隔进行蓝牙扫描。该应用程序还依赖于在这些时间间隔内可发现的设备。由于 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/

相关文章:

java - 确认Java ArrayList包含特定值

android - 在谷歌地图坐标之间绘制路线

iphone - iOS-如何在字符串内的特定位置插入字符?

ios - 如果我在从azure服务同步(增量同步)时增加页面大小,有什么缺点

java - wsit-client.xml 不修改wsdl?

java - 如何避免 JDBC 驱动程序断开连接时出现异常?

java - 将自定义命名空间定义为从 wsdl - Axis2 eclipse 生成的文件的包映射

java - 将 Facebook 图片上传到 imageview

android - Phonegap 多推送通知,当打开一个并返回时,它会从托盘中删除我的所有通知 - Android

ios - 从 xcode 中的另一个 View Controller 禁用按钮