Android ble api onCharacteristicChanged()从未触发

2帖子 / 0新
最后一篇文章
托马斯
离线
最后一次露面:5年7个月前
加入:2015-03-11 02:46
Android ble api onCharacteristicChanged()从未触发

我是DA14560的新来者
这是我想做的事情:
Android应用将值发送到DA14580,DA14580然后修改特征的值,然后将指示器发送回Android应用。Android应用使用指示来读取相应的特征。

根据Android SDK的说法,我在这里有一个问题,当Android应用收到通知或指示时,应召唤characteristicChanged(),但在我的情况下从未触发。
我以前使用setCharacteristicnotification(特征,true)启用了特征通知。
这是我的characteristicChanged()方法
@Override
公共空白onChacteristicChanged(蓝牙Gatt,蓝牙gattharacteristic){
broadcastupdate(action_data_changed,特征);
log.d(标签,“收到通知!”);
}

这些是我的DA14580特征设置代码:
在profile_task.c中
静态int lowspp_create_db_req_handler(ke_msg_id_t const msgid,
struct lowspp_create_db_req const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
...
//添加val属性
status = attmdb_add_attribute(lowspp_env.lowspp_shdl,sizeof(uint8_t)*30,// data Size = 20 // HCASEN添加14-10-10
att_uuid_128_len,(uint8_t*)&lowspp_2_val.uuid,perm(rd,enable)|pers(ind,启用)|pers(wr,启用),
&(val_hdl));

memcpy(lowspp_2_char.attr_hdl,&val_hdl,sizeof(uint16_t));

status = attmdb_att_set_value(char_hdl,sizeof(lowspp_2_char),(uint8_t *)和lowspp_2_char);
...
}

在个人资料中
struct att_char128_desc lowspp_2_char = {att_char_prop_rd |att_char_prop_ind | att_char_prop_wr,
{0,0},
// {0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x10,0x00,0x00,0x00,0xe2,0x34,0x00,0x00,0x00}}}}}}};/*uuid*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x10,0x00,0x60,0x60,0x02,0xd0,0x18,0x18,0xd6}}}}}}};

lowspp_upd_char2_req_handler()修改属性数据库,并将指示器发送到Android应用

静态int lowspp_upd_char2_req_handler(ke_msg_id_t_t const msgid,
struct lowspp_upd_char2_req const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
uint8_t状态= prf_err_ok;

//检查提供的值
if(param-> conhdl == gapc_get_conhdl(lowspp_env.con_info.conidx))
{
// DB中的更新值
attmdb_att_set_value(lowspp_env.lowspp_shdl + lowspp_2_idx_val,
param-> len,(uint8_t *)&param-> val);
//将指示发送到对等设备
if(((lowspp_env.feature&prf_cli_start_ind))
{
prf_server_send_event((prf_env_struct *)和lowspp_env,true,
lowspp_env.lowspp_shdl + lowspp_2_idx_val);
}
}
别的
{
状态= prf_err_invalid_param;
}

如果(状态!= prf_err_ok)
{
lowspp_upd_char2_cfm_send(status);
}

返回(ke_msg_consumed);
}

如果你能帮我,非常感谢

关键字:
设备:
je_dialog
离线
最后一次露面:5小时1分钟前
职员
加入:2013-12-05 14:02
你好托马斯,团队之一

你好托马斯,其中一支团队正在看一看,并将保持联系。

br je_dialog