PB(电话本)

# 简介 电话簙(Phone book)管理是对SIM卡储存的电话本进行一些操作,包括增删查改电话簙。 # API说明 pb的API在LuatOS-Air lib有做封装,建议直接用lib的API接口。 >API介绍见[pb API章节](https://doc.openluat.com/wiki/21?wiki_page_id=2285 "pb API章节") # 实现流程 * 设置电话本储存区域 通过pb.setStorage()接口设置电话本储存区域 * 进行电话簙操作 根据自己的对电话簙的操作需求,调用读取一条电话本记录pb.read()、写入一条电话本记录pb.write()、删除一条电话本记录pb.delete()接口实现 # 示例 本文以demo\pb这个DEMO为例做演示 1.首先通过循环定时器调用pb.read(index, cb)接口函数,读取位置1的电话本记录,测试PB模块功能是否正常,之后调用pb.setStorage(storage, cb)接口函数设置电话本储存区域。 ``` local function ready(result,name,number) --读取第1个位置的电话本信息 log.info("testPb.ready",result,name,number) if result then --功能正常停止循环,开始测试 sys.timerStop(pb.read,1,ready) --设置电话本存储区域,SM表示sim卡存储 pb.setStorage("SM",storagecb) end end --循环定时器只是为了判断PB功能模块是否ready sys.timerLoopStart(pb.read,2000,1,ready) ``` >注意: >lua版本电话本储存类型仅支持"SM"类型 2.调用pb.delete(index,cb)接口函数来测试删除电话本功能 ``` --pb.setStorage()接口的回调函数 local function storagecb(result) log.info("testPb.storagecb",result) --删除第1个位置的电话本记录 pb.delete(1,deletecb) end ``` 3. 通过调用pb.write(index, name, num, cb)接口函数来写入电话本的相关信息。 ``` --pb.delete()接口的回调函数 function deletecb(result) log.info("testPb.deletecb",result) --写入电话本记录到第2个位置 pb.write(2,"name1","11111111111",writecb) end ``` 4.写入电话本信息后再通过回调函数调用pb.read()接口函数, 测试新写入的电话本是否成功。 ``` --pb.write()接口的回调函数 function writecb(result) log.info("testPb.writecb",result) --读取第2个位置的电话本记录 pb.read(2,readcb) end --pb.read()接口的回调函数 function readcb(result,name,number) --打印读取的电话本信息 log.info("testPb.readcb",result,name,number) end ``` 5.在了解并修改了DEMO后将demo和对应的底包下载到开发板,下载的方式这里不详细说明请参考[环境搭建中的烧录章节](http://doc.openluat.com/wiki/21?wiki_page_id=1923 "环境搭建方法") 6.下载完成后重启,查看luatool工具日志,可以看到电话簙的增删查改都成功了。 ![undefined](https://cdn.openluat-luatcommunity.openluat.com/images/20210330113151755_4.png "undefined") ![undefined](https://cdn.openluat-luatcommunity.openluat.com/images/20210330113115237_2.png "undefined") ![undefined](https://cdn.openluat-luatcommunity.openluat.com/images/20210330113126359_3.png "undefined") 到此演示完电话簙增删查改功能。 ## 常见问题 1.lua版本的电话本储存类型支持什么类型? lua版本电话本储存类型仅支持"SM"类型