ESP32 の Classic BT で Change_Local_Name が使えない?

 201HW(Android 4.0.4 のため、Bluetooth LE に未対応)とペアリングさせたい(できれば最終的に SPP 接続したい)がためだけの目的で、Classic BT の勉強を開始しました。


 とはいえ、3月は年度末でバタバタしていて全く手を付けておらず、4月に入ってからようやく HCI Command の資料を斜め読みし始めた次第ですが、なんか急に頭が活性化し、今日ただちに Android 4.0.4 から Inquery したリストに ESP32 を出現させるところまで出来ました。 

参考にさせて頂いたサイト様

PIC16F1455 http://www.yts.rdy.jp/pic/GB002/hcic.html
レガシー仕様 https://www.bluetooth.com/ja-jp/specifications/adopted-specifications/legacy-specifications
順番 コマンド HCI送信 HCI受信
1 リセット 01 03 0c 00 04 0e 04 05 03 0c 00
2 BT ADDRの取得 01 09 10 00 04 0e 0a 05 09 10 00 xx xx 02 a4 ae 30
3 スキャン有効化 01 1a 0c 01 01 04 0e 04 05 1a 0c 00

※メモ
 スキャン有効化で 01 じゃなくて 03 を指定すると、外から Inquery されたとき落ちる
 原因は分からない


※プログラムソースは中途半端なので、もうちょっとまとまってから貼ります。


http://dl.ftrans.etr.jp/?e60d2e0f096b4be9b3bcf6fe8e2a899ffd2c185b.jpg


 ちなみにデバイスクラス名を指定するとアイコンになって出てきましたが、ESP32 に相応しいクラス名は何だろう?と考え始めると夜も寝れなくなるので、とりあえず未指定。


 んで、本当は BT ADDR じゃなくて名前を通知させたかったので、ESP32という名前で端末名を登録しようと 01 13 0c 06 45 53 50 33 32 00 を送ったら 04 0e 04 05 13 0c 12 が戻ってきてしまいました。
(最後の 12 はパラメータエラーを示すステータスで、00 が戻らないといけないはず)


 うーん、なんで?
 端末名の登録に成功してる方おられませんかー?