Widget API 接口实例演示(二) ——Telephony类和PIM类

Widget API 接口实例演示(二) ——Telephony类和PIM类

OPhone平台开发, 2010-01-05 15:03:07

标签 : 接口 API PIM Telephony

关于电话通讯的接口 —— Telephony

Telephony 下面有两个子对象, CallRecord CallRecordTypes
 
有六个方法:
 
1, deleteAllCallRecords(<String> callRecordType) 删除所有指定的通话记录类型,通话记录类型由 callRecordType 提供, callRecordType 能提供三种类型: MISSED 未接电话, OUTGOING 拨出电话, RECEIVED 已接电话。
3, findCallRecords(<CallRecord>comparisonRecord, <Number> startInx,<Number> endInx)
异步函数,在通话记录里搜索指定的号码, comparisonRecord 指定一个号码, startInx 返回搜索结果从第几条开始, endInx 返回搜索结果在第几条结束,如果你搜索到了10个相同的记录,只想返回第5到第7条记录,那么 startInx 填4 endInx 填6 . startInx 的基数从0开始。
4, getCallRecord(<String> callRecordType, <String> id) 返回一个通话记录, callRecordType 指定类型,id指定编号。
5, getCallRecordCnt(<String> callRecordType) 返回通话记录的总数, callRecordType 指定通话记录类型。
6, initiateVoiceCall(<String> phoneNumber) 拨打一个电话 phoneNumber 指定电话号码。
 
两个事件:
 
1, onCallEvent(<String> callType, <String> phoneNumber) 系统事件,当有电话拨入,或者拨出,或者有未接的电话时发生, onCallEvent 为回调函数,自动传入两个参数, callType 电话类型,默认的有"received", "missed" 和 "outgoing" , phoneNumber 为电话号码。
2, onCallRecordsFound(<Array> callRecordsFound) 程序事件,当找到匹配的电话号码时发生,这个事件是在使用 findCallRecords 方法后发生, findCallRecords 方法本身没有返回,而 onCallRecordsFound 事件将传递一个数组参数,这个数组就是 findCallRecords 方法找到的匹配结果。
 
 
CallRecord 概要:
这里先介绍 CallRecord 类和 CallRecordTypes 类的概要,这两个类不会单独演示,将和 Telephony 的方法一起演示。
CallRecord 类有四个数据成员:
1, callRecordAddress  为通话记录中的号码
2, callRecordId 为通话记录的编号
4, callRecordType 为通话记录的类型
5, durationSeconds  为通话时间,以秒做单位
6, startSeconds  为通话开始时间
 
CallRecordTypes 概要:
CallRecordTypes 能表示三种类型
1, MISSED  代表未接电话
2, OUTGOING  代表拨出电话
3, RECEIVED  代表已接听电话
 
Telephony 方法演示:
首先建立程序界面,如下图:
 
里面的数据在js代码里会有介绍,界面代码:
  1. <div>  
  2.      <input type="button"  value= "拨打114"  id= "114" >  
  3.      <input type="button"  value= "删除信息"  id= "delete" >  
  4.      <input type="button"  value= "刷新"  id= "refresh" >  
  5.      <hr>  
  6.      <span id="total" ></span><br>  
  7.      <span id="first" ></span><br>  
  8.      <span id="last" ></span>  
  9.      <span id="just" ></span>  
  10.      </div>  
 <div>
      <input type="button" value="拨打114" id="114">
      <input type="button" value="删除信息" id="delete">
      <input type="button" value="刷新" id="refresh">
      <hr>
      <span id="total"></span><br>
      <span id="first"></span><br>
      <span id="last"></span>
      <span id="just"></span>
      </div>
 
 
js代码:
  1. //我们的测试行为是,当程序启动时,在程序的界面上显示一共有多少个电话拨出记录,   
  2. //最早的一个记录是什么号码,在什么时间拨出去,最晚的一个记录是什么号码,在什么   
  3. //时间拨出去,当按下拨打114按钮时,就拨打114,按下删除记录按钮时,就删除最早的//一条记录,当按下刷新按钮时,就刷新界面上的信息。   
  4.    
  5. function Init(){  
  6.          
  7.        var call=document.getElementById('114' );  
  8.        var Delete=document.getElementById('delete' );  
  9.        var Refresh=document.getElementById('refresh' );  
  10.          
  11.        Refresh.addEventListener('click' ,refreshRecord, false );  
  12.        call.addEventListener('click' ,callNum, false );  
  13.        Delete.addEventListener('click' ,deleteRecord, false );  
  14.       
  15. //回调函数,当执行findCallRecords方法后,记录找到时执行foundRecords函数   
  16.        Widget.Telephony.onCallRecordsFound = foundRecords;  
  17.    
  18.     var id="" ; //初始化一个字符串变量,用来存储记录的ID,在下面,我们将用   
  19. findCallRecords方法来找到记录的ID  
  20.     refreshRecord();//当程序启动时执行刷新函数   
  21.          
  22. //当按下拨打114按钮时,执行的函数,调用initiateVoiceCall方法   
  23.        function callNum(){  
  24.                Widget.Telephony.initiateVoiceCall("114" );  
  25.        }  
  26.          
  27. //当按下删除记录按钮时执行的函数,调用deleteCallRecord方法   
  28. functiondeleteRecord(){  
  29. Widget.Telephony.deleteCallRecord(Widget.Telephony.CallRecordTypes.OUTGOING, id);  //deleteCallRecord方法删除一条记录,   
  30. //Widget.Telephony.CallRecordTypes.OUTGOING参数表示删除的是拨出的记录,其   
  31. //他类型还有MISSED,和RECEIVED ,需传递一个被删除记录的id号,   
  32. //deleteAllCallRecords方法可用来删除所有指定类型的记录   
  33.    
  34. refreshRecord();//删除记录后调用refreshRecord()函数来刷新界面   
  35.        }  
  36.          
  37. //这个函数用来刷新界面,你可以写更多的代码,给用户提供更多的信息,不过在   
  38. //这里只需要执行find函数里的内容,不需要更多的信息。   
  39.        function refreshRecord(){  
  40.               find();  
  41.        }  
  42.          
  43. function find(){  
  44. //getCallRecordCnt方法用来获得指定类型记录的总数,我们需要获得拨出记录的总   
  45. //数,然后输出在界面上   
  46. total=Widget.Telephony.getCallRecordCnt(Widget.Telephony.CallRecordTypes.OUTGOING);  
  47. document.getElementById('total' ).innerHTML= 'Total allocated: ' +total;  
  48.                 
  49. //下面开始查找所有的拨出记录   
  50.        var record = new  Widget.Telephony.CallRecord(); //用CallRecord类的构造函   
  51. 数,创建一个CallRecord对象,CallRecord类的数据成员在上面已经介绍过。  
  52.    record.callRecordAddress = "*" ; //用通配符表示所有的号码,你也可以指定一   
  53. 个号码  
  54.        record.callRecordType="outgoing" ; //需要指定一个类型,outgoing为拨出记录   
  55.        Widget.Telephony.findCallRecords(record,0 ,total- 1 ); //开始查找,返回所有   
  56. //找到的结果,因为基数是0,所以要在总数上减1.   
  57.                 
  58.        }  
  59.        //当findCallRecords方法执行后发生的事件,onCallRecordsFound回调函数,将传递   
  60. //一个数组,这个数组就是找到的记录   
  61. function foundRecords(callRecords) {  
  62. //获得最早拨出记录的时间   
  63. var firstTime=" " +callRecords[callRecords.length- 1 ].startTime.toLocaleTimeString()+ " " +callRecords[callRecords.length- 1 ].startTime.toLocaleDateString();  
  64. //获得最后一个拨出记录的时间   
  65. var lastTime="" +callRecords[ 0 ].startTime.toLocaleTimeString()+"   
  66. "+callRecords[0 ].startTime.toLocaleDateString();  
  67. //在界面上输出最早拨出记录的号码和拨出时间   
  68. document.getElementById('first' ).innerHTML= 'Thefirst:' +callRecords[callRecords.length- 1 ].callRecordAddress+firstTime;  
  69. //在界面上输出最近拨出记录的号码和拨出时间   
  70. document.getElementById('last' ).innerHTML= 'Thelast:' +callRecords[ 0 ].callRecordAddress+lastTime;  
  71. //获得最早拨出记录的ID号,deleteCallRecord方法需要   
  72.        id=callRecords[callRecords.length-1 ].callRecordId;  
  73.    
  74.        }  
  75. }  
  76. //当有电话拨入,或者拨出,或者有未接电话时所要执行的函数,在界面上输   
  77. //出一行信息   
  78. function CallBack(callType, phoneNumber){  
  79. document.getElementById('just' ).innerHTML= '<h5>Just' +callType+',N  
  80. um: '+phoneNumber+' </h5>';/  
  81.    }  
  82. window.οnlοad=Init;  
  83. Widget.Telephony.onCallEvent = CallBack;//onCallEvent事件绑定CallBack函数   
//我们的测试行为是,当程序启动时,在程序的界面上显示一共有多少个电话拨出记录,
//最早的一个记录是什么号码,在什么时间拨出去,最晚的一个记录是什么号码,在什么
//时间拨出去,当按下拨打114按钮时,就拨打114,按下删除记录按钮时,就删除最早的//一条记录,当按下刷新按钮时,就刷新界面上的信息。
 
function Init(){
       
       var call=document.getElementById('114');
       var Delete=document.getElementById('delete');
       var Refresh=document.getElementById('refresh');
       
       Refresh.addEventListener('click',refreshRecord,false);
       call.addEventListener('click',callNum,false);
       Delete.addEventListener('click',deleteRecord,false);
    
//回调函数,当执行findCallRecords方法后,记录找到时执行foundRecords函数
       Widget.Telephony.onCallRecordsFound = foundRecords;
 
    var id="";//初始化一个字符串变量,用来存储记录的ID,在下面,我们将用
findCallRecords方法来找到记录的ID
    refreshRecord();//当程序启动时执行刷新函数
       
//当按下拨打114按钮时,执行的函数,调用initiateVoiceCall方法
       function callNum(){
               Widget.Telephony.initiateVoiceCall("114");
       }
       
//当按下删除记录按钮时执行的函数,调用deleteCallRecord方法
functiondeleteRecord(){
Widget.Telephony.deleteCallRecord(Widget.Telephony.CallRecordTypes.OUTGOING, id);  //deleteCallRecord方法删除一条记录,
//Widget.Telephony.CallRecordTypes.OUTGOING参数表示删除的是拨出的记录,其
//他类型还有MISSED,和RECEIVED ,需传递一个被删除记录的id号,
//deleteAllCallRecords方法可用来删除所有指定类型的记录
 
refreshRecord();//删除记录后调用refreshRecord()函数来刷新界面
       }
       
//这个函数用来刷新界面,你可以写更多的代码,给用户提供更多的信息,不过在
//这里只需要执行find函数里的内容,不需要更多的信息。
       function refreshRecord(){
              find();
       }
       
function find(){
//getCallRecordCnt方法用来获得指定类型记录的总数,我们需要获得拨出记录的总
//数,然后输出在界面上
total=Widget.Telephony.getCallRecordCnt(Widget.Telephony.CallRecordTypes.OUTGOING);
document.getElementById('total').innerHTML='Total allocated: '+total;
              
//下面开始查找所有的拨出记录
       var record = new Widget.Telephony.CallRecord();//用CallRecord类的构造函
数,创建一个CallRecord对象,CallRecord类的数据成员在上面已经介绍过。
   record.callRecordAddress = "*";//用通配符表示所有的号码,你也可以指定一
个号码
       record.callRecordType="outgoing";//需要指定一个类型,outgoing为拨出记录
       Widget.Telephony.findCallRecords(record,0,total-1);//开始查找,返回所有
//找到的结果,因为基数是0,所以要在总数上减1.
              
       }
       //当findCallRecords方法执行后发生的事件,onCallRecordsFound回调函数,将传递
//一个数组,这个数组就是找到的记录
function foundRecords(callRecords) {
//获得最早拨出记录的时间
var firstTime=" "+callRecords[callRecords.length-1].startTime.toLocaleTimeString()+" "+callRecords[callRecords.length-1].startTime.toLocaleDateString();
//获得最后一个拨出记录的时间
var lastTime=""+callRecords[0].startTime.toLocaleTimeString()+" 
"+callRecords[0].startTime.toLocaleDateString();
//在界面上输出最早拨出记录的号码和拨出时间
document.getElementById('first').innerHTML='Thefirst:'+callRecords[callRecords.length-1].callRecordAddress+firstTime;
//在界面上输出最近拨出记录的号码和拨出时间
document.getElementById('last').innerHTML='Thelast:'+callRecords[0].callRecordAddress+lastTime;
//获得最早拨出记录的ID号,deleteCallRecord方法需要
       id=callRecords[callRecords.length-1].callRecordId;
 
       }
}
//当有电话拨入,或者拨出,或者有未接电话时所要执行的函数,在界面上输
//出一行信息
function CallBack(callType, phoneNumber){
document.getElementById('just').innerHTML='<h5>Just'+callType+',N
um: '+phoneNumber+'</h5>';/
   }
window.οnlοad=Init;
Widget.Telephony.onCallEvent = CallBack;//onCallEvent事件绑定CallBack函数
 
执行效果:
当程序开始启动时,显示:
因为笔者在模拟器上只打过一个电话,所以最早和最近的拨出号码是一样的。
 
 
当笔者拨打了114后,在按刷新按钮,界面显示如下:
 
当笔者按删除信息按钮后,界面显示如下:
 
将删除早先拨打10086的记录,所以只剩下拨打114的电话记录。
 
CallRecord 类的其他数据成员,表示一条通讯记录的其他信息,读者可以自己去试验。读者也可以查询未接电话和已接电话,只需将 CallRecordTypes 类的类型更改为 MISSED 或者 RECEIVED 。记录的ID是一条记录的唯一标识符,一般需通过 findCallRecords 方法获得。
 
 
 
 
关于个人信息管理的接口 —— PIM
 
PIM 下面有三个子对象: AddressBookItem , EventRecurrenceTypes , CalendarItem
 
16个方法:
 
1, addAddressBookItem(<AddressBookItem> contact)  添加一个联系人
2, addCalendarItem(<CalendarItem> calendarItem) 添加一个日历项目
3, createAddressBookGroup(<String> groupName)  在地址簿上创建一个新的组
4, createAddressBookItem()    创建一个空的联系人
5, deleteAddressBookGroup(<String> groupName) 删除地址簿上的一个组
6, deleteAddressBookItem(<String> contactid)  通过指定的ID删除一个联系人
7, deleteCalendarItem(<String> calendarId)  通过指定的ID删除一个日历项目
8, exportAsVCard(addressBookItems)  异步函数,用以导出电子名片
9, findAddressBookItems(<AddressBookItem> comparisonContact, <Number> startInx, <Number> endInx)  异步函数,找到所有指定的联系人项目
10, findCalendarItems(<CalendarItem> itemToMatch, <Number> startInx, <Number> endInx)  异步函数,找到所有指定的日历项目
11, getAddressBookGroupMembers(groupName)    找到所有指定小组中的联系人成员
12, getAddressBookItem(<String> contactid)  通过指定的ID返回一个联系人
13, getAddressBookItemsCount()   返回联系人总数
14, getAvailableAddressGroupNames()  返回地址簿中所有的组名
15, getCalendarItem(<String> calendarId) 通过指定的ID返回一个日历项目
16, getCalendarItems(<Date> startTime, <Date> endTime)  返回指定时间内所有的日历项目
 
四个程序事件:
 
2, onCalendarItemAlert(<CalendarItem> calendarItem) 当日历项目的警报启动时发生此事件
3, onCalendarItemsFound(calendarItemsFound)
   findCalendarItems 方法和 getAddressBookGroupMemebers 方法完成后发生此事件
4, onVCardExportingFinish(<String> vCardFilePath)  当电子名片导出完成后发生此事件
 
 
AddressBookItem 概要:
 
AddressBookItem 类的对象存储了联系人的信息,信息内容有
 
1, address  联系人的邮政地址
2, addressBookItemId 联系人在地址簿里的ID
3, company  联系人所属公司
4, eMail
5, fullName 全名
6, homePhone 家庭电话
7, mobilePhone 移动电话
8, title 信息内容标签
9, workPhone 工作电话
 
有六个方法:
 
1, getAddressGroupNames()  返回联系人所在的组名
2, getAttributeValue(<String> attribute)  返回指定属性的值
3, getAvailableAttributes()  返回联系人可用的属性
4, setAddressGroupNames(<Array> groups)  设置联系人的组名,参数为字符串数组,可同
   时指定多个组名
5, setAttributeValue(<String> attribute, <String> value)  设置属性值
6, update() 更新信息
 
地址簿操作演示:
 
笔者先来综合演示下地址簿常用的操作方法。
首先建立界面如下:
界面代码:
  1. <input type= "button"  value= "添加号码"  id= "add" ><br>  
  2. <input type="button"  value= "更新号码"  id= "update" ><br>  
  3. <input type="button"  value= "删除号码"  id= "delete" ><br>  
<input type="button" value="添加号码" id="add"><br>
<input type="button" value="更新号码" id="update"><br>
<input type="button" value="删除号码" id="delete"><br>
 
Js代码:
  1. // 当我们点击添加号码的时候将会在通讯录中添加一个联系人,联系人全名为Mobile //Service,所属公司为China Mobile,手机号码 为10086,当点击更新号码时,将会//在联系人里添加一个家庭号码,号码为12530,当点击删除号码时,将会删除手机号码   
  2. //为10086的所有联系人。   
  3.    
  4. function Init(){  
  5.       
  6.     var Add=document.getElementById('add' );  
  7.     var Delete=document.getElementById('delete' );  
  8.     var Update=document.getElementById('update' );  
  9.       
  10.     Add.addEventListener('click' ,AddContact, false );  
  11.     Delete.addEventListener('click' ,DeleteContact, false );  
  12.     Update.addEventListener('click' ,UpdateContact, false );  
  13.       
  14.     Widget.PIM.onAddressBookItemsFound = ContactFound;//回调函数   
  15.       
  16.     var Operation="" ; //创建一个字符串变量   
  17.       
  18.  function AddContact(){  
  19.    
  20.      //创建一个 AddressBookItem类的对象   
  21.      var contact = new  Widget.PIM.AddressBookItem();  
  22.      //设置联系人的信息   
  23.      contact.setAttributeValue("fullName""Mobile Service" );  
  24.      contact.setAttributeValue("company""China Mobile" );  
  25.      contact.setAttributeValue("mobilePhone""10086" );  
  26.      //添加一个联系人   
  27.      Widget.PIM.addAddressBookItem(contact);  
  28.      alert("Successfully added" );  
  29.  }  
  30.  function DeleteContact(){  
  31.     //当要执行删除操作时,将Operation赋值为delete   
  32.      Operation="delete" ;  
  33.       find();  
  34.  }  
  35.    
  36.  function UpdateContact(){  
  37.      //当要执行更新操作时,将Operation赋值为update   
  38.      Operation="update" ;  
  39.      find();  
  40.         
  41.  }  
  42.  //find函数用来寻找手机号码为10086的所有联系人   
  43.  function find(){  
  44.        
  45.       var total=Widget.PIM.getAddressBookItemsCount()  
  46.      var contact = new  Widget.PIM.AddressBookItem();  
  47.      contact.setAttributeValue("mobilePhone""10086" );  
  48.      Widget.PIM.findAddressBookItems(contact, 0 , total- 1 );  
  49.        
  50.  }  
  51.  //使用findAddressBookItems方法后将发生此事件   
  52.  function ContactFound(addressBookItems){  
  53.      //遍历所有找到的联系人   
  54.      for (var value= 0 ;value<addressBookItems.length;value++)  
  55.      {    //当Operation的值为delete执行删除操作   
  56.          if (Operation== 'delete' ){  
  57.          Widget.PIM.deleteAddressBookItem(addressBookItems[value].addressBookItemId);  
  58.          }  
  59.        //当Operation的值为update执行更新操作   
  60.          if (Operation== 'update' )  
  61.          {     
  62.              var contact = addressBookItems[value];  
  63.              contact.setAttributeValue("homePhone""12580" );  
  64.              contact.update();  
  65.          }  
  66.    
  67.      }  
  68.        
  69.      if (Operation== 'delete' ){  
  70.            alert('Deleted successfully' );  
  71.      }  
  72.      else {  
  73.          alert('Updated successfully' );  
  74.      }  
  75.        
  76.        
  77.  }  
  78.       
  79. }  
  80.    
  81. window.οnlοad=Init;  
//当我们点击添加号码的时候将会在通讯录中添加一个联系人,联系人全名为Mobile //Service,所属公司为China Mobile,手机号码为10086,当点击更新号码时,将会//在联系人里添加一个家庭号码,号码为12530,当点击删除号码时,将会删除手机号码
//为10086的所有联系人。
 
function Init(){
    
    var Add=document.getElementById('add');
    var Delete=document.getElementById('delete');
    var Update=document.getElementById('update');
    
    Add.addEventListener('click',AddContact,false);
    Delete.addEventListener('click',DeleteContact,false);
    Update.addEventListener('click',UpdateContact,false);
    
    Widget.PIM.onAddressBookItemsFound = ContactFound;//回调函数
    
    var Operation="";//创建一个字符串变量
    
 function AddContact(){
 
     //创建一个 AddressBookItem类的对象
     var contact = new Widget.PIM.AddressBookItem();
     //设置联系人的信息
     contact.setAttributeValue("fullName", "Mobile Service");
     contact.setAttributeValue("company", "China Mobile");
     contact.setAttributeValue("mobilePhone", "10086");
     //添加一个联系人
     Widget.PIM.addAddressBookItem(contact);
     alert("Successfully added");
 }
 function DeleteContact(){
    //当要执行删除操作时,将Operation赋值为delete
     Operation="delete";
      find();
 }
 
 function UpdateContact(){
     //当要执行更新操作时,将Operation赋值为update
     Operation="update";
     find();
      
 }
 //find函数用来寻找手机号码为10086的所有联系人
 function find(){
     
      var total=Widget.PIM.getAddressBookItemsCount()
     var contact = new Widget.PIM.AddressBookItem();
     contact.setAttributeValue("mobilePhone", "10086");
     Widget.PIM.findAddressBookItems(contact, 0, total-1);
     
 }
 //使用findAddressBookItems方法后将发生此事件
 function ContactFound(addressBookItems){
     //遍历所有找到的联系人
     for(var value=0;value<addressBookItems.length;value++)
     {    //当Operation的值为delete执行删除操作
         if(Operation=='delete'){
         Widget.PIM.deleteAddressBookItem(addressBookItems[value].addressBookItemId);
         }
       //当Operation的值为update执行更新操作
         if(Operation=='update')
         {   
             var contact = addressBookItems[value];
             contact.setAttributeValue("homePhone", "12580");
             contact.update();
         }
 
     }
     
     if(Operation=='delete'){
           alert('Deleted successfully');
     }
     else{
         alert('Updated successfully');
     }
     
     
 }
    
}
 
window.οnlοad=Init;
 
 
执行效果:
当添加联系人后:
当更新信息后:
添加了一个家庭电话。
 
 
按下删除按钮后,将删除联系人。
 
 
CalendarItem 概要:
 
CalendarItem 类的对象存储了一个日历项目的内容,内容有:
 
1, alarmDate 此项目提醒时间
2, alarmed 此项目是否有设置提醒,此为 Boolean 值
3, calendarItemId  此项目的ID
4, eventEndTime  事件结束时间
5, eventName      事件名称
6, eventNotes      事件内容
7, eventRecurrence  事件的提醒模式,由 EventRecurrenceTypes 决定
8, eventStartTime   事件开始时间
 
一个方法:
 
1, update() 更新日历项目
 
EventRecurrenceTypes 概要:
 
EventRecurrenceTypes 为日历项目的提醒模式,一共有七种提醒模式:
 
1, DAILY  每日提醒
2, EVERY_WEEKDAY 工作日提醒
3, MONTHLY_ON_DAY   每月提醒一次
4, MONTHLY_ON_DAY_COUNT  每月最后一个星期提醒
5, NOT_REPEAT    不重复
6, WEEKLY_ON_DAY  每周提醒
7, YEARLY  每年提醒一次
 
 
 
日历项目操作演示:
建立界面如下:
界面代码:
  1. <input type= "button"  value= "添加事件"  id= "add" ><br>  
  2. <input type="button"  value= "删除事件"  id= "delete" ><br>  
  3.    
<input type="button" value="添加事件" id="add"><br>
<input type="button" value="删除事件" id="delete"><br>
 
 
 
Js代码:
  1. //添加一个事件,和删除一个事件   
  2. function Init(){  
  3.       
  4.     var Add=document.getElementById('add' );  
  5.     var Delete=document.getElementById('delete' );  
  6.       
  7.     Add.addEventListener('click' ,AddContact, false );  
  8.     Delete.addEventListener('click' ,DeleteContact, false );  
  9.       
  10.     Widget.PIM.onAddressBookItemsFound = ContactFound;  
  11.       
  12.  function AddContact(){  
  13.        
  14.      var day = new  Date ( 20091225000 );  
  15.      var calendarItem = new  Widget.PIM.CalendarItem();  
  16.      calendarItem.startTime = day;//设置开始日期   
  17.      calendarItem.eventName = "Test" ;  
  18. calendarItem.eventRecurrence=Widget.PIM.EventRecurrenceTypes.W  
  19. EEKLY_ON_DAY;//设置成每周提醒   
  20.      Widget.PIM.addCalendarItem(calendarItem);  
  21.      alert("Successfully added" );  
  22.  }  
  23.  function DeleteContact(){  
  24.      var startTime = new  Date ( 200911000 );  
  25.      var endTime = new  Date ( 201011000 );  
  26. //用getCalendarItems方法返回指定时间内所有的事件   
  27. var Events = Widget.PIM.getCalendarItems(startTime,endTime);  
  28.      for (var value= 0 ;value<Events.length;value++)  
  29.      {   //当事件名为Test时,删除此事件   
  30.          if (Events[value].eventName== "Test" )  
  31.          {   
  32. Widget.PIM.deleteCalendarItem(Events[value].calendarItemId );   
  33.          }  
  34.      }  
  35.      alert("Deleted successfully" );  
  36.        
  37.  }  
  38.    
  39. }  
  40. window.οnlοad=Init;  
//添加一个事件,和删除一个事件
function Init(){
    
    var Add=document.getElementById('add');
    var Delete=document.getElementById('delete');
    
    Add.addEventListener('click',AddContact,false);
    Delete.addEventListener('click',DeleteContact,false);
    
    Widget.PIM.onAddressBookItemsFound = ContactFound;
    
 function AddContact(){
     
     var day = new Date (2009, 12, 25, 0, 0, 0);
     var calendarItem = new Widget.PIM.CalendarItem();
     calendarItem.startTime = day;//设置开始日期
     calendarItem.eventName = "Test";
calendarItem.eventRecurrence=Widget.PIM.EventRecurrenceTypes.W
EEKLY_ON_DAY;//设置成每周提醒
     Widget.PIM.addCalendarItem(calendarItem);
     alert("Successfully added");
 }
 function DeleteContact(){
     var startTime = new Date (2009, 1, 1, 0, 0, 0);
     var endTime = new Date (2010, 1, 1, 0, 0, 0);
//用getCalendarItems方法返回指定时间内所有的事件
var Events = Widget.PIM.getCalendarItems(startTime,endTime);
     for(var value=0;value<Events.length;value++)
     {   //当事件名为Test时,删除此事件
         if(Events[value].eventName=="Test")
         { 
Widget.PIM.deleteCalendarItem(Events[value].calendarItemId ); 
         }
     }
     alert("Deleted successfully");
     
 }
 
}
window.οnlοad=Init;
 
 
执行效果:
 
程序所添加的事件
 
事件名为Test,没有添加事件内容,因为没有指定结束时间,所以默认在一个小时后结束,因为添加事件的时间为周五,所以会在每周的周五提醒。
 
 
按下删除事件按钮将删除此事件。
 
本章总结:
这一章主要介绍了 Telephony 类和 PIM 类,对他们的基本操作做了演示。希望对大家有所帮助。
 
作者:
   陈耀政 ophoneSDN帐号:3GLive 邮箱:my.3g.live@gmail.com
http://www.ophonesdn.com/article/show/179
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值