3

更新後(Android 6)我的nexus 5,我的運行應用程序無法掃描(查找)任何藍牙設備。 getBondedDevices()獲得配對的設備列表工作正常。更新後無法使用藍牙發現/掃描代碼我的Nexus 5上的Android 6

我還測試了藍牙功能的很多示例代碼和應用程​​序(我已經把鏈接放在下面)。都有同樣的問題,它無法找到藍牙設備。

但是,我發現只有一個應用程序正在工作,它能夠發現/掃描藍牙設備。

通過Android開發人員和許多在Android 6不工作的應用程序(的Nexus 5) 我已經測試許多應用等,bluetrem,示例代碼。

工作程序 藍牙4.0掃描器 https://play.google.com/store/apps/details?id=com.bluemotionlabs.bluescan

任何人知道是什麼問題,有沒有對代碼所需的任何修改,使與Android 6

+1

問題似乎是我們重視回調監聽的方式之後。假設它是一個BLE設備。 檢查「改進的藍牙低能量掃描」部分(如果是這種情況): http://developer.android.com/about/versions/marshmallow/android-6.0.html#ble-scanning – binaryKarmic

+0

您是否解決了該問題? – bendaf

回答

1

正如它在change list of Android 6兼容,您的應用現在必須擁有ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION許可才能進行某些藍牙通話。請檢查你是否有。

3

至少在Android 6.0 2015年11月1日的安全補丁中,您不僅需要ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION權限,還需要實際開啓位置服務才能使藍牙掃描正常工作。

我在我的應用程序和Play商店中的其他一些BLE應用程序中對此進行了驗證,其中包括Bluetooth 4.0 Scanner

這意味着我們必須在開始掃描之前確保位置處於開啓狀態,否則會失敗。

2

它的工作原理,這是一個解決方案,儘量放ACCESS_FILE_LOCATION或ACCESS_COARSE_LOCATION後打開GPS,並要求運行許可

+0

這是爲我工作的唯一解決方案!謝謝! – PayToPwn