メニューを閉じる

テクノモバイルグループ

メニューを開く

2019.06.26

プログラミング

Android BluetoothLeScanner でくそ重くなる

坂東です。

AndroidでBLEの信号を取得したければ BluetoothLeScanner を使います。
すると一定間隔で ScanCallback.onScanResult に値が入ってくるというわけです。

機器や端末によってはonScanResultの呼ばれる頻度が半端ありません。
50ms間隔とか。

 

そうするとものすごく重いです。
とくに何もしない以下のようなサンプルコードでも、徐々に端末が重くなりフリーズします。

 

 

対策としてはonScanResultの内部処理を別スレッドで動かすことです。

 

なにも考えないとUIスレッドで処理するわけですが、UIはシングルスレッドなので処理が滞留して徐々に重くなっていくという訳のようですね。

 

おわり。

 


【テクノモバイルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』
https://qangaroo.jp/

最近の記事

SNS共有

X CLOSE
X CLOSE
X CLOSE