一段完整的Android平台上短信功能的接口源码,利用扩展的API可以通过js实现如下功能:
1. getContentUris():读取短信相关的所有数据库表的Uri地址;
2. get(int number):读取若干条短信;
3. getUnread(int number):读取若干条未读短信;
4. getRead(int number):读取若干条已读短信;
5. getInbox(int number):从收件箱读取若干条短信;
6. getSent(int number):读取若干条已发短信;
7. getByThread(int threadID):读取会话中所有短信;
8. getThreads(int number):读取若干条会话;
9. getData(String selection, int number):根据条件读取若干条短信。
- packagerexsee.communication;
- importrexsee.core.browser.JavascriptInterface;
- importrexsee.core.browser.RexseeBrowser;
- importrexsee.core.utilities.Escape;
- importandroid.content.ContentResolver;
- importandroid.content.Context;
- importandroid.database.Cursor;
- importandroid.net.Uri;
- publicclassRexseeSMSimplementsJavascriptInterface{
- privatestaticfinalStringINTERFACE_NAME="SMS";
- @Override
- publicStringgetInterfaceName(){
- returnmBrowser.application.resources.prefix+INTERFACE_NAME;
- }
- @Override
- publicJavascriptInterfacegetInheritInterface(RexseeBrowserchildBrowser){
- returnthis;
- }
- @Override
- publicJavascriptInterfacegetNewInterface(RexseeBrowserchildBrowser){
- returnnewRexseeSMS(childBrowser);
- }
- publicstaticfinalStringCONTENT_URI_SMS="content://sms";
- publicstaticfinalStringCONTENT_URI_SMS_INBOX="content://sms/inbox";
- publicstaticfinalStringCONTENT_URI_SMS_SENT="content://sms/sent";
- publicstaticfinalStringCONTENT_URI_SMS_CONVERSATIONS="content://sms/conversations";
- publicstaticString[]SMS_COLUMNS=newString[]{
- "_id",
- "thread_id",
- "address",
- "person",
- "date",
- "body",
- "read",
- "type",
- "service_center"
- };
- publicstaticString[]THREAD_COLUMNS=newString[]{
- "thread_id",
- "msg_count",
- "snippet",
- };
- privatefinalContextmContext;
- privatefinalRexseeBrowsermBrowser;
- publicRexseeSMS(RexseeBrowserbrowser){
- mBrowser=browser;
- mContext=browser.getContext();
- }
- publicStringgetContentUris(){
- Stringrtn="{";
- rtn+="\"sms\":\""+CONTENT_URI_SMS+"\"";
- rtn+=",\"inbox\":\""+CONTENT_URI_SMS_INBOX+"\"";
- rtn+=",\"sent\":\""+CONTENT_URI_SMS_SENT+"\"";
- rtn+=",\"conversations\":\""+CONTENT_URI_SMS_CONVERSATIONS+"\"";
- rtn+="}";
- returnrtn;
- }
- publicStringget(intnumber){
- returngetData(null,number);
- }
- publicStringgetUnread(intnumber){
- returngetData("type=1ANDread=0",number);
- }
- publicStringgetRead(intnumber){
- returngetData("type=1ANDread=1",number);
- }
- publicStringgetInbox(intnumber){
- returngetData("type=1",number);
- }
- publicStringgetSent(intnumber){
- returngetData("type=2",number);
- }
- publicStringgetByThread(intthread){
- returngetData("thread_id="+thread,0);
- }
- publicStringgetData(Stringselection,intnumber){
- Cursorcursor=null;
- ContentResolvercontentResolver=mContext.getContentResolver();
- try{
- if(number>0){
- cursor=contentResolver.query(Uri.parse(CONTENT_URI_SMS),SMS_COLUMNS,selection,null,"datedesclimit"+number);
- }else{
- cursor=contentResolver.query(Uri.parse(CONTENT_URI_SMS),SMS_COLUMNS,selection,null,"datedesc");
- }
- if(cursor==null||cursor.getCount()==0)return"[]";
- Stringrtn="";
- for(inti=0;i<cursor.getCount();i++){
- cursor.moveToPosition(i);
- if(i>0)rtn+=",";
- rtn+="{";
- rtn+="\"_id\":"+cursor.getString(0);
- rtn+=",\"thread_id\":"+cursor.getString(1);
- rtn+=",\"address\":\""+cursor.getString(2)+"\"";
- rtn+=",\"person\":\""+((cursor.getString(3)==null)?"":cursor.getString(3))+"\"";
- rtn+=",\"date\":"+cursor.getString(4);
- rtn+=",\"body\":\""+Escape.escape(cursor.getString(5))+"\"";
- rtn+=",\"read\":"+((cursor.getInt(6)==1)?"true":"false");
- rtn+=",\"type\":"+cursor.getString(7);
- rtn+=",\"service_center\":"+cursor.getString(8);
- rtn+="}";
- }
- return"["+rtn+"]";
- }catch(Exceptione){
- mBrowser.exception(getInterfaceName(),e);
- return"[]";
- }
- }
- publicStringgetThreads(intnumber){
- Cursorcursor=null;
- ContentResolvercontentResolver=mContext.getContentResolver();
- try{
- if(number>0){
- cursor=contentResolver.query(Uri.parse(CONTENT_URI_SMS_CONVERSATIONS),THREAD_COLUMNS,null,null,"thread_iddesclimit"+number);
- }else{
- cursor=contentResolver.query(Uri.parse(CONTENT_URI_SMS_CONVERSATIONS),THREAD_COLUMNS,null,null,"thread_iddesc");
- }
- if(cursor==null||cursor.getCount()==0)return"[]";
- Stringrtn="";
- for(inti=0;i<cursor.getCount();i++){
- cursor.moveToPosition(i);
- if(i>0)rtn+=",";
- rtn+="{";
- rtn+="\"thread_id\":"+cursor.getString(0);
- rtn+=",\"msg_count\":"+cursor.getString(1);
- rtn+=",\"snippet\":\""+Escape.escape(cursor.getString(2))+"\"";
- rtn+="}";
- }
- return"["+rtn+"]";
- }catch(Exceptione){
- mBrowser.exception(getInterfaceName(),e);
- return"[]";
- }
- }
- }
转自:http://snoopychen.iteye.com/blog/1276864
分享到:
相关推荐
Android开发之用Bmob实现短信验证码功能源码(附短信关键字监控参考文档)
Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...
为了应用的推广、传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信、微博等等一切实现了分享功能的应用列表。具体可参考:http://blog.csdn.net/xyz_lmn/article/details/16856843
Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....
本代码简单易懂,布局已经设好,可以实现短信发送功能。
Android开发之用Bmob实现短信验证码功能源码(附短信关键字监控参考文档.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
利用广播进行过滤短信,可以将你需要加密的短信显示到这个app上,而不会在显示到系统自带的短信中
Android 实现自动接听和挂断电话功能.zip android 悬浮窗 监视内容.rar android 指南针 源码.rar Android 瀑布流 Demo.rar Android 版本检测与管理.rar Android 电子杂志(带翻页效果)源码.rar Android 电量显示...
Android安卓手机震动功能如何实现【源码】,不多介绍了,就是触发手机的震动功能,在响铃或接收到短信提醒时的震动功能,当时其它提醒中也可使用震动。
只需开启转发转发至短信,并且设置目标手机号就可实现自动转发。 自动转发短信至目标邮箱 开启转发至邮箱。 设置SMTP服务器(QQ、163、126、Gmail、Outlook、自定义)。如果选择自定义SMTP服务器,则需要设置主机名...
关于Android短信语音播报源码资源,这是一个涉及Android开发的重要功能,旨在通过文本到语音(TTS,Text-to-Speech)技术,将接收到的短信内容转化为语音播报,方便用户在无法查看屏幕或忙碌时获取短信信息。...
注意:本项目基于android studio开发,eclipse可能无法直接导入。
信息过滤功能源码.zip
Android 实现自动接听和挂断电话功能.zip android 悬浮窗 监视内容.rar android 指南针 源码.rar Android 瀑布流 Demo.rar Android 版本检测与管理.rar Android 电子杂志(带翻页效果)源码.rar Android 电量显示...
这是一款Android的简单的通讯录,实现查询和修改联系人和打电话,发短信功能。
从功能和布局上分析本项目应该是在某套完整的项目源码上剥离出来的,本项目是主要实现了一个Metro风格的布局和一个短信注册的完整流程包括中间的动画效果,并没有其他实质性的功能。短信注册之前是用的一个php接口,...
10.4 短信管理器(SmsManager) 400 10.5 音频管理器 (AudioManager) 404 10.5.1 AudioManager简介 404 10.6 振动器(Vibrator) 407 10.6.1 Vibrator简介 407 10.6.2 使用Vibrator控制手机振动 407...
Android例子源码模仿IOS音乐的可拖动导航栏功能 Android例子源码模仿安卓微信、云播雷达扫描动画效果 Android例子源码类似58同城的通过滑屏控制引导页 Android例子源码计步器圆形UI设计 Android例子源码适合新手学习...
这是一款类似手机通信录的...主要功能是查询手机联系人,群发短信,查看号码,根据文字首字母排序。如果在自己的项目中运用的联系人可以直接使用项目源码,项目中的UI设计很好看。代码量相对较少而且有非常详细的注释。
功能: 1、当更换手机卡后自动发短信到安全手机并报告其GPS位置 2、通过发送短信到手机控制其报告GPS位置 3、强制打开GPS 4、接收短信拦截短信通知 ...短信声音报警功能,可以帮助寻找手机,这个容易实现。