AC692X电话本和蓝牙ID3获取
AC692X 电话本和蓝牙ID3获取
2018-09-29
本文档介绍如何在AC692X 的V205SDK版本获取电话本和蓝牙ID3 的信息。
一、 电话本添加部分
步骤一:在bt_configs_user.c加入如下两条语句。
#define USER_SUPPORT_PROFILE_PBAP 1 extern void set_supprot_pbap();
步骤二:实现PBAB 电话本的回调函数。
extern void pbap_register_packet_handler(void ( * handler)(u8 type, const u8 *name, const u8 *number, const u8 *date));
static void phonebook_packet_handler(u8 type, const u8 *name, const u8 *number, const u8 *date)
{
static u16 number_cnt = 0;
printf("NO.%d:", number_cnt);
number_cnt++;
printf("type:%d ", type);
if (type == 0xff) {
number_cnt = 0;}
if(name) {
printf(" NAME:%s ", name);}
if(number) {
printf("number:%s ", number);}
if(date) {
printf("date:%s ", date);}
putchar('\n');}
在函数bredr_handle_register添加如下语句。
步骤三:函数bt_function_select_init添加如下语句,让手机自动打开电话本共享。
__change_hci_class_type(BD_CLASS_HANDS_FREE);
步骤四:蓝牙主程序里头信息调用测试。

二、蓝牙ID3 的调用
目前蓝牙ID3支持获取如下信息。
user_get_bt_music_info 函数在Bt_configs_user.c文件里头已有定义。
static void user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len){
//profile define type: 1-title 2-artist name 3-album names 4-track number 5-total number of tracks 6-genre 7-playing time
//JL define 0x10-total time , 0x11 current play position
u8 min, sec;
//printf("type %d\n", type );
if ((info != NULL) && (len != 0)) {
puts((const char *) info);
putchar('\n');}
if (time != 0) {
min = time / 1000 / 60;
sec = time / 1000- (min * 60);
printf(" time %d %d\n ", min, sec);}
}
函数bredr_handle_register调用。
extern void bt_music_info_handle_register(void ( * handler)(u8 type, u32 time, u8 *info, u16 len));
每次播放歌曲都有如下ID3信息。