我正在尝试将附近的Android集成(https://develovelers.google.com/nearby/(进入我的应用程序,但是当我尝试使用nearby.subscribe
时,它会失败,而失败了"麦克风许可"错误。
由于我找不到将添加到AndroidManifest.xml
的权限,所以我搜索了一些并尝试添加RECORD_AUDIO
,但不幸的是它没有解决问题。
要求的许可(也在运行时(:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
代码:
val nearby = Nearby.getMessagesClient(this, MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build())
nearby.publish(Message("Hello".toByteArray()))
nearby.subscribe(object : MessageListener() {
override fun onDistanceChanged(p0: Message?, p1: Distance?) {
super.onDistanceChanged(p0, p1)
toast("onDistanceChanged")
}
override fun onLost(p0: Message?) {
super.onLost(p0)
toast("onLost")
}
override fun onBleSignalChanged(p0: Message?, p1: BleSignal?) {
super.onBleSignalChanged(p0, p1)
toast("onBleSignalChanged")
}
override fun onFound(p0: Message?) {
super.onFound(p0)
toast("onFound")
}
}).addOnFailureListener { toast("onFailure " + it.message) }
.addOnSuccessListener { toast("onSuccess") }
错误:
2807: Missing microphone permission
如何使附近的API工作?
创建附近的MessagesClient
时,您指定只使用 BLE权限。默认情况下,附近的Connections API使用策略。不默示访问包括麦克风访问。因此,您的订阅/出版物将因未获得麦克风许可而失败。
要使附近的API工作,请通过订阅选项并发布分别在订阅或发布时使用附近要求的选项,例如strument.ble_only仅适用于附近的人。
请参阅此处的API说明/文档。这是您的错误代码和描述。