是否有一個庫可以爲具有特定MAC的藍牙低功耗設備執行後臺掃描?我知道altbeacon這樣做,但似乎只適用於信標類型的BLE設備 - 而不是其他類型。或者有沒有一種方法可以爲此使用altbeacon?我只是想檢測某個設備是否處於打開狀態,並且範圍內 - 據我所知,這應該可能類似於信標 - 我只是沒有篩選廣告中的某些數據 - 僅針對mac。我可以實現這一點,但不想重新發明輪子連續掃描BLE-MAC
0
A
回答
0
我沒有爲你準備的圖書館,但我最近做了類似的工作,而且這很容易實現。
首先我做一個btAdapter.startLeScan(mLeScanCallback);
它運行在一個循環,並在回調我可以過濾MAC地址
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (device.getAddress().equals("your mac address")){
//do your stuff
}
}
});
}
};
2
爲了給你一個強大的解決方案,它消耗少量的能量,並在所有操作系統版本的作品與他們不同的掃描API將成爲數百行復雜的代碼。我知道,因爲我已經完成了,請參閱https://github.com/iDevicesInc/SweetBlue/blob/master/src/com/idevicesinc/sweetblue/P_Task_Scan.java,瞭解您必須處理的一些細節。
所以,如果你在驗證的概念階段,只是想要的東西快,嘗試在你的Activity類以下使用SweetBlue:
// Wake lock might not be needed for your application, up to you.
BleManager.get(this).pushWakeLock();
BleManager.get(this).setConfig(new BleManagerConfig()
{{
scanMode = BleScanMode.LOW_POWER;
}});
BleManager.get(this).startPeriodicScan(Interval.FIVE_SECS, Interval.FIVE_SECS, new ScanFilter()
{
@Override public Please onEvent(ScanEvent e)
{
return Please.acknowledgeIf(e.macAddress().equals("DE:CA:FF:C0:FF:EE"));
}
});
這會給你掃描大約五秒鐘,五幾秒鐘後重復,直到您致電stopPeriodicScan()
。
+0
感謝 - upvoted,但尚未接受希望更好的方式(lib) – ligi
相關問題
- 1. 連續WifiManager掃描掃描結果
- 2. 用zxing連續掃描條形碼
- 3. 停止ZxingObjC中的連續掃描
- 4. 爲BLE掃描連續訂閱和取消訂閱Observable
- 5. Android:連續掃描所有AP(接入點)
- 6. 繼續使用掃描器獲取NoSuchElementException
- 7. 選擇主鍵:爲什麼Postgres的喜歡做連續掃描VS索引掃描
- 8. Multipage WIA掃描(docfeeder)掃描1頁並阻止掃描器
- 9. 如何掃描聲納掃描儀
- 10. 全表掃描或索引掃描
- 11. 掃描儀不掃描我的輸入
- 12. 掃描儀內的掃描儀錯誤
- 13. 掃描器中的連接未關閉
- 14. Postgres反連接需要表掃描?
- 15. 哈希連接需要全表掃描
- 16. 是否可以掃描LAN或Wi-Fi連接的掃描儀機器?
- 17. 掃描實時文件,並在遇到連續5個相同的行
- 18. Android 5.1中的哪種類型的連續BLE掃描節省電量?
- 19. 條碼掃描
- 20. Card.io不掃描
- 21. 條碼掃描
- 22. NSString掃描?
- 23. TCP syn掃描
- 24. Python:掃描raw_input
- 25. 激活掃描?
- 26. Mysql表掃描
- 27. 掃描儀,useDelimiter
- 28. 使用掃描
- 29. 由掃描儀
- 30. 掃描器NoSuchElementException
是的 - 但問題是更多的是在後臺做,而不消耗太多精力 – ligi