绪论
在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。
此文为开发视界翻译转载者请注明出处否则追究法律责任 |