bluetoothAdapter.startDiscovery()始终返回False
这是我用来尝试启动蓝牙发现的代码。但是,我总是以“无法启动发现”消息结束(请参见下面的代码) 设备:运行Android 10 API 29的像素3 从等级文件: MinsdkVersion16bluetoothAdapter.startDiscovery()始终返回False,bluetooth,discovery,Bluetooth,Discovery,这是我用来尝试启动蓝牙发现的代码。但是,我总是以“无法启动发现”消息结束(请参见下面的代码) 设备:运行Android 10 API 29的像素3 从等级文件: MinsdkVersion16 targetSdkVersion 30 从清单文件: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name=&
targetSdkVersion 30 从清单文件:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<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-feature android:name="android.hardware.bluetooth" />
谢谢 因此,尽管清单中有所有权限,但系统拒绝了应用程序的位置服务,当我转到手机菜单中的位置设置时,我的应用程序甚至没有列出。我不得不进入下拉菜单并启用“Show system”,然后出现了一堆其他名字怪异的应用程序,其中包括我的应用程序。我启用了“alwasys allow”,现在英国电信正在发现附近的设备
那么,我如何在运行时请求此权限,以确保我拥有权限而无需进入“设置”菜单?您是否在回答框中询问问题?如果这是你问题的一部分,请编辑它。
if (bluetoothAdapter==null)
Log.i("BT", "First must enable BT");
else
{
if(bluetoothAdapter.getState()==bluetoothAdapter.STATE_ON)
{
Log.i("BT", "BT State on");
if (bluetoothAdapter.isDiscovering()) {
Log.i("BT", "was already discovering");
bluetoothAdapter.cancelDiscovery();
}
if(bluetoothAdapter.startDiscovery())
Log.i("BT", "starting discovery");
else
Log.i("BT", "Unable to start discovery");
}
else
Log.i("BT", "BT State NOT on");
}