1

ble デバイスに接続して、そこからデータを受信するアプリを作成しました。私はこのリンク「http://toastdroid.com/2014/09/22/android-bluetooth-low-energy-tutorial」をたどっていましたが、ヒントと観察セクションで、すべてのGATT操作をキューに入れるように指示されています。それ、どうやったら出来るの?

4

2 に答える 2

2

リクエストをキューに入れるには、リクエストの Arraylist を持つキュー クラスを作成できます。

リクエストを作成するたびに、それをキューに追加し、キューの処理を開始します (キューがまだ処理されていない場合)。現在のアイテムを処理したら、まだ処理するアイテムがあるかどうかを確認し、処理を続けます。

また、リクエストの 1 つがスタックした場合に備えて、タイムアウトを追加する必要がある場合もあります。

ハンドラーを使用してキューを処理する方法のサンプル コード:

private void startProcessingQueue() {
    if (queueIsRunning) {
        return;
    }

    queueIsRunning = true;
    h.postDelayed(new Runnable(){
        public void run(){
            processQueue();

            if(queue.isEmpty()) {
                queueIsRunning = false;
                return;
            }

            h.postDelayed(this, QUEUE_PROCESSING_DELAY);
        }
    }, QUEUE_PROCESSING_DELAY);
}
于 2016-09-19T01:26:15.660 に答える