首 页 | 新 闻 | Symbian | Windows Mobile| J2ME | 下载中心 | 游戏策划 | 购书指南 | 移动开发视频教程
您现在的位置: 开发视界 >> 专家专栏 >> 新鲜的Lychee >> 文章正文
发布并签署API和蓝牙HCI命令
作者:lychee08…    文章来源:本站原创    更新时间:2006-7-7 8:48:34

绪论

在8.0a版本中引进了发布并签署API。该API简化了多处理间的通信。而且新的API代替了访问蓝牙主机控制接口。

主机控制接口(HCI)提供蓝牙基带访问并运行读出蓝牙地址或是变换移动电话到另一种可发现模式。如果想像前几次通过端口发问道主机控制接口,SetIoctl方法会抛出KErrNotSupported错误。

发布并签署API的作用在这里已作阐述。但是与主机控制接口连接功效并没有所描述。

如何使用API

在/SDK头文件bt_subscribe.h 中,指明特殊的变量可用于连接发布并签署API来访问HCI:
// For Bluetooth notifications via Publish & Subscribe
const TUid KPropertyUidBluetoothCategory = {0x101FD916};
//to send properties *to* the stack
const TUid KPropertyUidBluetoothControlCategory = {0x101FD917};

// enumerate keys here
const TUint KPropertyKeyBluetoothLocalDeviceAddress = 0;
const TUint KPropertyKeyBluetoothPHYCount = 1;
const TUint KPropertyKeyBluetoothConnecting = 2;
const TUint KPropertyKeyBluetoothScanning = 3;
const TUint KPropertyKeyBluetoothLimitedDiscoverable = 4;
const TUint KPropertyKeyBluetoothDeviceClass = 5;
const TUint KPropertyKeyBluetoothRegistryTableChange = 0x1000;

// the values for the keys
//RegistryTableChanges
const TUint KRegistryChangeRemoteTable = 0;
const TUint KRegistryChangeLocalTable = 1;
const TUint KRegistryChangeCSYTable = 2;

例如通过调用以下语句可以读取蓝牙地址:
TPckgBuf<TBTDevAddr> aDevAddrPckg;
TInt error = RProperty::Get(KPropertyUidBluetoothCategory, KPropertyKeyBluetoothLocalDeviceAddress, aDevAddrPckg);

首先要定义所要写的属性。以下例子将阐述如何设置发现模式:
RProperty::Define(KPropertyUidBluetoothControlCategory,  KPropertyKeyBluetoothLimitedDiscoverable, RProperty::EByteArray);

TPckgBuf <TUint32> type = KLIAC;// KGIAC
return RProperty::Set(KPropertyUidBluetoothControlCategory,  KPropertyKeyBluetoothLimitedDiscoverable, type);

总结
发布并签署API提供了简单访问主机控制接口的方法。但是与主机控制接口连接的API并未作描述。但无论如何发布并签署API简化了访问HIC。

此文为开发视界翻译转载者请注明出处否则追究法律责任

相关文章:
gnuBox 和 Nokia 3230
Cobain:在Symbian OS/Series 60 上轻松使用蓝牙
蓝牙:PC-Suite配置
蓝牙:手机相配USB适配器
蓝牙:安装并配置蓝牙USB适配器
关于模拟器的蓝牙环境地的搭建
Symbian sdk帮助-类CWordModel
Symbian sdk帮助-类CShgFormulaTextLexer