Java 蓝牙启动发现未给出结果

Java 蓝牙启动发现未给出结果,java,android,bluetooth,discovery,Java,Android,Bluetooth,Discovery,这是我在Android上的第一个应用。我对Android和Java非常陌生。不过,我是iOS/ObjC方面的专家。我在实践中学习。所以我直接开始制作一个连接蓝牙设备的应用程序。当然,第一步是获得范围内可用蓝牙设备的列表 这是我的舱单: <?xml version="1.0" encoding="utf-8"?> <manifest...> <uses-permission android:name="android.permission.BLUETOOTH

这是我在Android上的第一个应用。我对Android和Java非常陌生。不过,我是iOS/ObjC方面的专家。我在实践中学习。所以我直接开始制作一个连接蓝牙设备的应用程序。当然,第一步是获得范围内可用蓝牙设备的列表

这是我的舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest...>

    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application ...
我在android手机上打开了蓝牙,然后运行应用程序显示日志:

蓝牙初始化 开始发现

就这些。其他日志没有打印出来。知道为什么吗?我的代码看起来很完美

编辑:Android检测到蓝牙模块HC-05的屏幕截图。

其他设备可能未处于可发现模式。确保它们是可发现的。

如果您的其他设备是蓝牙模块,在您的情况下是Arduino,对吗

如果是这样,请查看本教程,其中描述了Android设备和HC05模块之间的连接。

此外,根据该官方样本:

或者,您也可以使用以下方法使设备可被发现。并安装在两部手机上。然后你应该至少能够发现对方的手机

protected void makeDiscoverable(){
    // Make local device discoverable
    Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, DISCOVERABLE_DURATION);
    startActivityForResult(discoverableIntent, DISCOVERABLE_BT_REQUEST_CODE);
}

也许这些有帮助

如果我在“设置”中使用android的蓝牙菜单,我可以看到其他设备。您在菜单中看到的设备是配对设备。否未配对。它在箭头菜单中。我不确定箭头菜单。如果您在设置中单击pair new device(配对新设备),您是否可以随时/始终看到其他手机显示在可用设备中?如果不是所有的时间,那么。实际上不是另一部电话。它实际上是一个蓝牙模块HC-05。当我打开设备时,我可以在android设置菜单中看到它。它只是没有出现在我的应用程序的日志中。你需要请求位置权限。是的。您可以在我在上面发布的清单代码.Nvm中看到这一点。我解决了。很高兴知道你发现了问题。那么是什么原因造成的?@GeneCode你没有。你刚刚申报了。你需要在Android 6上请求它们+
protected void makeDiscoverable(){
    // Make local device discoverable
    Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, DISCOVERABLE_DURATION);
    startActivityForResult(discoverableIntent, DISCOVERABLE_BT_REQUEST_CODE);
}